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
什么不同?