如何生成包含除了填充等文件夹中除特定文件名之外的所有文件的清单。
实际要求
4
issue1425.tgz 3096209598
issue1426.TGZ 3096209591
issue1427.ZIP 3096209592
issue1428.zip 3096209593
=> 文件总数:4
文件名:issue1425.tgz
档案大小:123333
...
我正在做这样的
ls i2*.* |wc -l >>manifest.txt
vdir i2*.* >>manifest.txt
“manifest.txt”中的输出是
4
-rwxr-Sr-t 1 root root 3096209598 2013-03-28 05:46 issue1425.tgz
-rwxrw-r-- 1 root root 3096209591 2013-03-20 06:46 issue1426.TGZ
-rwxr-Sr-t 1 root root 3096209592 2013-03-28 07:46 issue1427.ZIP
-rwxrw-r-- 1 root root 3096209593 2013-03-20 08:46 issue1428.zip
任何人都有解决方案来获得我的确切要求:
编辑2:@jarnbjo你的命令给我错误的输出看到文件的实际大小,但它错误地给了我。
root@aim-deb:/mnt/arch1/batchfiles/siva/20130328094916142/received# vdir
total 108816
drwxrwxrwx 5 1330 sno 4096 2013-03-20 00:30 i23321367
-rw-rw-r-- 1 1330 sno 39934457 2013-03-20 03:20 i23321367.tgz
drwxrwxrwx 5 1330 sno 4096 2013-03-20 00:33 i23321376
-rw-rw-r-- 1 1330 sno 36030069 2013-03-20 03:20 i23321376.tgz
drwxrwxrwx 5 1330 sno 4096 2013-03-20 00:34 i23321436
-rw-rw-r-- 1 1330 sno 35310600 2013-03-20 03:20 i23321436.tgz
-rw-r--r-- 1 root root 69 2013-03-29 00:57 manifest_QAG.txt
-rw-rw-r-- 1 1330 sno 75 2013-03-20 03:20 manifest.txt
root@aim-deb:/mnt/arch1/batchfiles/siva/20130328094916142/received# ls -1s -- block-size=1 i*.* $dir| awk '{print $2"\t"$1}'
i23321367.tgz 39981056
i23321376.tgz 36073472
i23321436.tgz 35352576
root@aim-deb:/mnt/arch1/batchfiles/siva/20130328094916142/received#
答案:@jarnbjo最后我感谢它为什么会发生这种情况。如果磁盘上的文件大小不是文件的实际大小,则块大小给出了大小。这里我想要文件的大小,所以我可以使用vdir i *。* $ dir | awk'{print $ 8“\ t”$ 5}'
答案 0 :(得分:3)
如果您只想要文件数量及其大小,请尝试使用:
ls -1hs $dir
h
代表人类可读s
代表大小1
(一个)只显示文件名,每行一个。如果你想让它成为名字,那么请使用:
ls -1hs $dir | awk '{print $2" "$1}'
修改强>
从注释中,您希望它具有以字节为单位的大小,因此您可以这样做:
ls -1s --block-size=1 $dir
进一步修改
如果您希望不显示目录,则必须先前cd $dir
。还有其他方法,但这似乎是最干净的。
cd $dir; ls -1s --block-size=1 is*.* | awk '{print $2"\t"$1}'