Answers:
rm如果您害怕,甚至不需要在这种情况下使用。用途find:
find . -name "*.bak" -type f -delete
但是请谨慎使用。首先运行:
find . -name "*.bak" -type f
查看要删除的文件。
另外,请确保这-delete是命令中的最后一个参数。如果将其放在之前-name *.bak argument,它将删除所有内容。
rm *.bak将不适用于子目录。
rm *.bak只会删除当前目录中所有以.bak结尾的文件。要在子目录中执行某些操作,您可能需要弄乱glob,使用-r选项或使用find示例。
rm -r *.bak!它还会删除.bak以所有内容结尾的目录。
-delete是命令中的最后一个参数。如果将其放在-name *.bak参数之前,它将删除所有内容。
find . -name "*.bak" -type f -print0 | xargs -0 /bin/rm -f
对我来说,删除文件不是您应该使用的东西rm。这是一个替代方案:
sudo apt-get install gvfs # install a tool that allows you to put stuff in the trash
alias "trash"="gvfs-trash" # you can also put this in .bash_aliases or simply use the command without alias
trash *.bak # trash the files (thus moving them to the trash bin)
如Flimm在评论中所述:
该软件包的
trash-cli功能与gvfs-trash不依赖gvfs的功能相同。
所以:
sudo apt-get install trash-cli
您不需要为此设置别名,因为trash-cli程序包提供了一个command trash,它可以完成我们想要的操作。
正如Eliah Kagan在大量评论中明确指出的那样,您还可以使用进行递归find。在这种情况下,您不能使用别名,因此以下命令假定您已安装trash-cli。我总结了以利亚的评论:
此命令.bak在当前目录或其子目录中或以下的任何位置查找并显示所有文件和符号链接。
find . -name '*.bak' -xtype f
要删除它们,请-exec在trash命令后附加一个:
find . -name '*.bak' -xtype f -exec trash {} +
-xtype f选择文件并符号链接到文件,但不选择文件夹。要同时删除.bak文件夹,请删除该部分并使用-execdir,这样可以避免目录内文件的cannot trash non-existent错误:.bak.bak
find . -name '*.bak' -execdir trash {} +
rm删除内容”是一个有争议的说法,但我必须同意,使用可以让您撤消操作的东西通常更明智。
trash-cli功能与gvfs-trash不依赖的功能相同gvfs。
find . -name "*.bak" -type f什么trash *.bak。那真的是你的意思吗?您可以使用trash或将目录移到回收站gvfs-trash,但trash *.bak只会移动名称以结尾.bak并且直接位于当前目录中的文件和目录。外壳会扩展*.bak,因此trash *.bak不会影响.bak本身没有命名的子目录中的文件.bak。
ls *.bak(我认为您的意思是)列出了哪些trash *.bak垃圾内容。find . -name '*.bak' -xtype f -exec trash {} +将所有.bak文件删除到下的任何位置.。它不能使用别名,因此请安装trash-cli或编写gvfs-trash。这是一个例子。 -xtype f选择文件并符号链接到文件,但不选择文件夹。要删除.bak 文件夹find . -name '*.bak' -execdir trash {} +,也可以使用,这样可以避免目录内文件cannot trash non existent出错。请随时在您的答案中使用任何一个。.bak.bak
递归删除所有具有考虑名称或后缀的文件:
find . -name '*.pyc' -type f -delete
递归删除所有具有考虑名称的目录:
find ~ -path '*/__pycache__/*' -delete
find ~ -type d -name '__pycache__' -empty -delete
不太严格的控制,但在一行中:
find ~ -path '*/__pycache__*' -delete
[ 注意 ]:
d是目录选项,f是文件选项。
如果您位于git仓库中,则可以使用:
git clean -fdx
这将删除未跟踪的文件和.gitignore中的文件。
rm *.bak什么不同?