我想对文件夹中的所有文件运行dos2unix
命令。这里的问题是文件夹包含文件和子文件夹。子文件夹再次包含文件和文件夹。因此,如果我只是运行user/bin/dos2unix <folder>
,它将抛出错误,因为主文件夹中存在子文件夹和文件夹。
关于如何绕过它以便dos2unix
命令在每个文件夹中的文件上运行的任何想法?
只需从要执行dos2unix命令的位置运行以下命令即可。根据您的文件扩展名类型更改以下"*.txt"
。如果它们在不同的目录位置不同,则使其"*.*"
find . -name "*.txt" | xargs dos2unix
这里.
是您当前的目录和"*.txt" are all your
dos的文件。
上述命令将如何工作?它将找到*.txt
的所有dos
文件,并将每个file
作为参数输入到dos2unix
命令中,并将该dos
格式文件转换为unix
格式。
如果您想从任何位置运行它,只需提供完整路径代替.
如下所示:-
find /path/from/where/you/want/to -name "*.txt" | xargs dos2unix
find <folder> -type f | xargs dos2unix
解释:
-
find <folder> -type f
将列出<folder>
及其子文件夹中的所有常规文件 -
xargs dos2unix
会将dos2unix
命令应用于find
找到的每个文件
这里不需要xargs
;只需使用-exec
主find
find -type f -exec dos2unix {} +