Debian

清理 tar 命令

  • December 3, 2016

我是通過 SSH 做的:

tar xvfz t10k-images-idx3-ubyte.gz

而不是gunzip.

現在:

gsamaras:~/Desktop/Data$ ls
$_?????)  ???=         Klein  siftsmall         Sphere
???       gist         MNIST  siftsmall.tar.gz  t10k-images-idx3-ubyte.gz
????      gist.tar.gz  sift   sift.tar.gz       train-images-idx3-ubyte.gz
gsamaras:~/Desktop/Data$ rm ???
rm: cannot remove ‘???’: No such file or directory

創建了其他名稱怪異的元素,然後將其刪除。現在怎麼辦?如何刪除這些剩菜?


不確定哪個 inode 號:

gsamaras:~/Desktop/Data$ ls -il
total 2899108
17311143 ---------- 1 gsamaras gsamaras          0 Jan  1  1970 $_?????)
17311158 ---------- 1 gsamaras gsamaras          0 Jan  1  1970 ???
17311150 ---------- 1 gsamaras gsamaras          0 Jan  1  1970 ????
17311148 ---------- 1 gsamaras gsamaras          0 Jan  1  1970 ???=
17311000 drwxr-xr-x 2 gsamaras gsamaras       4096 Dec 16  2009 gist
17310981 -rw-r--r-- 1 gsamaras gsamaras 2740172684 Dec  2 04:11 gist.tar.gz
17309401 drwxr-xr-x 5 gsamaras gsamaras       4096 Dec  1 19:19 Klein
17311043 drwxr-xr-x 2 gsamaras gsamaras       4096 Dec  3 22:41 MNIST
17310949 drwxr-xr-x 2 gsamaras gsamaras       4096 Dec 16  2009 sift
17317672 drwxr-xr-x 2 gsamaras gsamaras       4096 Dec 16  2009 siftsmall
17317670 -rw-r--r-- 1 gsamaras gsamaras    5305734 Dec  1 01:20 siftsmall.tar.gz
17310947 -rw-r--r-- 1 gsamaras gsamaras  168280445 Dec  2 03:16 sift.tar.gz
17312617 drwxr-xr-x 5 gsamaras gsamaras       4096 Dec  1 19:45 Sphere
17311145 -rw-r--r-- 1 gsamaras gsamaras    7840016 Jul 21  2000 t10k-images-idx3-ubyte
17311135 -rw-r--r-- 1 gsamaras gsamaras   47040016 Jul 21  2000 train-images-idx3-ubyte

最簡單的是使用 find 和 inode。

ls -il將在最左邊的列中列出每個文件及其 inode 編號。

find . -inum <the inode number discovered by ls> -exec rm {} \;

例如:

find . -inum 17311143 -exec rm {} \;

findrm在由 inode 編號標識的文件上執行。

對每個文件重複。可能有一種方法可以通過解析返回的文件名來自動執行此操作ls,但是對於您的情況下的少量文件,不值得花時間。

引用自:https://unix.stackexchange.com/questions/327843