我正在备份一个文件夹,我在其中使用了以下命令:
sudo tar -zcvf www.tar.gz /var/www/
它成功压缩,只是为了验证压缩存档中的文件数量,以及我运行以下命令的目录:
sudo tar -ztvf www.tar.gz | wc -l
->186364
ls -R /var/www | wc -l
->196440
为什么计数不同,我错过了什么?
答案1
查看没有管道的输出以wc
查看差异
$ ls -R www | cat
www:
dir1
dir2
file1
www/dir1:
file1
www/dir2:
file1
file2
$ ls -R www | wc -l
11
和
$ tar xvfz www.tar.gz
www/
www/dir1/
www/dir1/file1
www/dir2/
www/dir2/file1
www/dir2/file2
www/file1
$ tar xvfz www.tar.gz |wc -l
7
ls -R
只是产生更多的输出。
答案2
ls -R
在输出中添加一些额外的空行,这会导致计数增加。
您可以通过运行命令来测试它,ls -R
而无需通过管道将其传递到wc -l
答案3
使用tree
命令
tree -i |tail
这将为您提供特定文件夹中的文件夹和文件的数量。