当我做
rm file.txt
字符串或
rm *.txt
型系统提示输入每个文件,因为我没有为rm指定-f选项。但当我这样做时:
rm
-f
find . -type f -name '*.txt' | xargs rm
型文件在没有确认的情况下被删除。这背后的逻辑是什么?有没有可能在一些文件中找到原因?我无法解释为什么会这样。
kh212irz1#
您将rm命令的别名设置为“rm -i”。
型别名将被展开。如果您使用xargs调用它,如
型rm作为一个简单的字符串参数传递给xargs,然后由xargs调用,而不使用shell的别名替换。您的别名可能在~/.bashrc中定义,以防您想要删除它。
hfyxw5xn2#
你可以使用这个简单的命令来解决你的问题
find . -type f -name '*.txt' -delete
字符串
1wnzp6jl3#
根据您的xargs版本,您可能会使用--no-run-if-empty GNU扩展选项:
find . -type f -name '*.txt' | xargs --no-run-if-empty rm -rf
blmhpbnm4#
要将PATH_DIR 2中的现有文件删除到PATH_DIR 1中:
find PATH_DIR1 -type f -exec basename '{}' ';' | xargs printf -- 'PATH_DIR2/%s\n' | xargs rm
字符串说明:1.列出PATH_DIR 1中的所有文件名find PATH_DIR1 -type f -exec baseband“{}”;“1.使用PATH_DIR2中的现有文件过滤前面的列表(查找相交数据)xargs printf --“PATH_DIR2/%s\n”1.对过滤后的结果执行删除操作沙格什河
4条答案
按热度按时间kh212irz1#
您将rm命令的别名设置为“rm -i”。
字符串
或
型
别名将被展开。如果您使用xargs调用它,如
型
rm作为一个简单的字符串参数传递给xargs,然后由xargs调用,而不使用shell的别名替换。您的别名可能在~/.bashrc中定义,以防您想要删除它。
hfyxw5xn2#
你可以使用这个简单的命令来解决你的问题
字符串
1wnzp6jl3#
根据您的xargs版本,您可能会使用--no-run-if-empty GNU扩展选项:
字符串
blmhpbnm4#
要将PATH_DIR 2中的现有文件删除到PATH_DIR 1中:
字符串
说明:
1.列出PATH_DIR 1中的所有文件名
find PATH_DIR1 -type f -exec baseband“{}”;“
1.使用PATH_DIR2中的现有文件过滤前面的列表(查找相交数据)
xargs printf --“PATH_DIR2/%s\n”
1.对过滤后的结果执行删除操作
沙格什河