Questions tagged «basename»

3
shellcheck建议不要使用basename:为什么?
我正在尝试shellcheck。 我有这样的东西 basename "${OPENSSL}" 我得到以下建议 Use parameter expansion instead, such as ${var##*/}. 从实际的角度来看,我认为没有区别 $ export OPENSSL=/opt/local/bin/openssl $ basename ${OPENSSL} openssl $ echo ${OPENSSL##*/} openssl 由于basename是POSIX规范中的内容,因此我不认为这是最佳实践。有什么提示吗?

4
dirname和basename与参数扩展
是否有客观原因偏爱一种形式?性能,可靠性,可移植性? filename=/some/long/path/to/a_file parentdir_v1="${filename%/*}" parentdir_v2="$(dirname "$filename")" basename_v1="${filename##*/}" basename_v2="$(basename "$filename")" echo "$parentdir_v1" echo "$parentdir_v2" echo "$basename_v1" echo "$basename_v2" 产生: /some/long/path/to /some/long/path/to a_file a_file (v1使用外壳程序参数扩展,v2使用外部二进制文件。)

6
使用basename解析文件中包含的路径列表
我正在运行Mac OSX,并尝试使用命令行查找具有相同名称的文件数。 我尝试使用以下命令: find ~ -type f -name "*" -print | basename | sort | uniq -d > duplicate_files 它不起作用!当我执行以下操作时: find ~ -type f -name "*" -print > duplicate_files 然后plicate_files确实包含了我所有文件的路径。因此,我认为问题出在basename-它不接受标准输入。然后,我尝试了以下操作: basename $(find ~ -type f -name "*" -print) > duplicate_files 但这又似乎不起作用。在互联网上搜索似乎并没有带来太多乐趣。任何想法最欢迎。

2
如何从Shell变量获取路径的文件名部分
Shell变量包含路径。一个人如何获得其文件名部分? 在bash(1)中,我进行了实验,发现可以使用."${i/*\///}"where i是环境变量的名称来进行操作。这种方法不仅丑陋,而且在路径不包含任何/字符的情况下也是错误的。 我将演示一个需要这种功能的实际案例。假设我们要为源目录中的每个PDF文件建立到当前目录的符号链接。 $ for i in /source/path/*.pdf; do\ ln -s "$i" ."${i/*\///}"; \ done
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.