我正在使用rm -rf
命令从文件夹中删除数据。
在删除之前我想知道从该文件夹中删除的文件的名称和大小,并在日志文件中更新。这样我就能知道从该文件夹中删除了哪些文件。
我正在使用 ubuntu 14.04。有什么办法吗?
答案1
通过使用 -v 参数,您可以查看(记录)正在删除的所有内容。如需更多信息(如文件大小),您需要创建一个脚本来解析每个目录和文件,记录所需的信息,然后删除它们。
临时(目录) |- 1(目录) |- 2(目录) |-- 3.ge(文件) 用户@笔记本电脑:~$ rm -rfv temp 删除了“temp/1/2/3.ge” 删除了目录‘temp/1/2’ 删除目录‘temp/1’ 删除了目录‘temp’
答案2
如果您只想知道哪些文件被删除了,您可以使用带有-v
的选项rm
,就像 P. Iakovakis 已经解释的那样。
如果您想要模拟删除过程并在执行命令之前获取要删除的文件列表,rm
可以使用ls -shR
delete 参数rm
:
文件夹结构:
删除前列出文件:
$ ls -shR folder-to-delete
folder-to-delete:
total 20K
4.0K folder 4.0K test 4.0K test1 4.0K test2 4.0K test3
folder-to-delete/folder:
total 8.0K
4.0K test 4.0K test2
删除文件然后列出它们:
$ rm -rfv folder-to-delete
removed 'folder-to-delete/test'
removed 'folder-to-delete/folder/test'
removed 'folder-to-delete/folder/test2'
removed directory 'folder-to-delete/folder'
removed 'folder-to-delete/test2'
removed 'folder-to-delete/test1'
removed 'folder-to-delete/test3'
removed directory 'folder-to-delete'
也许您想添加-l
选项以ls
获取文件列表表示和更多信息:
$ ls -shRl folder-to-delete
folder-to-delete:
total 20K
4.0K drwxr-xr-x 2 root root 4.0K Mar 5 19:15 folder
4.0K -rw-r--r-- 1 root root 5 Mar 5 19:15 test
4.0K -rw-r--r-- 1 root root 6 Mar 5 19:15 test1
4.0K -rw-r--r-- 1 root root 6 Mar 5 19:15 test2
4.0K -rw-r--r-- 1 root root 6 Mar 5 19:15 test3
folder-to-delete/folder:
total 8.0K
4.0K -rw-r--r-- 1 root root 2 Mar 5 19:15 test
4.0K -rw-r--r-- 1 root root 4 Mar 5 19:15 test2