Bri*_*tle 14 command-line scripting directory find
似乎有很多方法可以做到这一点,包括 shell 脚本中的循环、find 和 xargs。其中哪个最好,哪个最便携?
txw*_*ger 13
find . -exec <command> {} \;
Run Code Online (Sandbox Code Playgroud)
对于当前目录作为树的根或一般:
find <directory> -exec <command> {} \;
Run Code Online (Sandbox Code Playgroud)
小智 5
如果文件名或目录名带有空格,请使用-print0查找选项和-0选项xargs:
find {dir} -print0 | xargs -0r {command}
Run Code Online (Sandbox Code Playgroud)
该-print0选项发现打印出的文件名作为NUL-分隔,而不是空格隔开的列表,而-0选项xargs指示它打破其输入NUL,而不是空白。由于NUL是 Unix 文件名中不允许使用的字符之一,因此无法将其误认为是文件名的一部分。
该-r选项在那里,因此xargs如果没有输入,则不会给您错误。