使用sudo rm -r时,如何删除除以下文件外的所有文件?
textfile.txt
backup.tar.gz
script.php
database.sql
info.txt
使用sudo rm -r时,如何删除除以下文件外的所有文件?
textfile.txt
backup.tar.gz
script.php
database.sql
info.txt
当前回答
我相信你可以使用
rm -v !(filename)
除了文件名,所有其他文件将删除在该目录中,并确保您正在使用它
其他回答
你可以为它写一个for循环…%)
for x in *
do
if [ "$x" != "exclude_criteria" ]
then
rm -f $x;
fi
done;
不要直接执行命令,请将所需文件移动到当前目录之外的临时目录。然后使用rm *或rm -r *删除所有文件。
然后移动所需的文件到当前目录。
删除除file.name以外的所有内容:
ls -d /path/to/your/files/* |grep -v file.name|xargs rm -rf
find [path] -type f -not -name 'textfile.txt' -not -name 'backup.tar.gz' -delete
如果不指定-type f find也会列出目录,这可能不是您想要的。
或者一个更通用的解决方案,使用非常有用的组合find | xargs:
find [path] -type f -not -name 'EXPR' -print0 | xargs -0 rm --
例如,删除当前目录下的所有非txt文件:
find . -type f -not -name '*txt' -print0 | xargs -0 rm --
如果需要删除的文件名中有空格,则需要print0和-0组合。
因为没人提过
把不想删除的文件复制到安全的地方 删除所有文件 将复制的文件移回原位