我正在阅读Brian Ward的Linux的工作原理,他发出了以下警告:“在心里知道这种形式之前,请不要尝试使用-exec之类的选项” find -name file -print
到目前为止,我还不明白为什么这种形式如此重要。为什么无论目录名如何,我都不想在特定位置搜索目录。另外,在我看来,-print是默认选项,联机帮助页强烈建议使用-print0,因为某些文件名可能包含换行符。
作者告诫读者不要在-exec
不了解find
命令的结构和方法的情况下进行尝试。
find -type d -print
例如,您尝试不会有任何伤害。注意但是,您知道运行此命令会发生什么情况find -depth -type d -exec mv {} {}.surprise \;
吗?
如果您想知道会发生什么,请用mv
不执行永久操作的命令替换(或补充):
find -depth -type d -exec echo mv {} {}.surprise \;
关于-print0
,仅在管道内工作时才使用。(但是,当您的其他实用程序支持其NUL分隔的记录时,该功能非常有用。)如果您只想列出find
输出以进行目视检查,请-print
改用。
PS。当你想从已经在你的文件系统的一个重要组成部分,可以运行危险命令恢复可能运行find -depth -type d -print0 | while IFS= read -r -d '' d; do mv "$d" "${d%.surprise}"; done
。但是最好在安全的地方尝试/tmp
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句