Tarファイルまたはディレクトリのコンテンツをある程度のレベルまでリストする

StackOverflow https://stackoverflow.com/questions/2700306

  •  01-10-2019
  •  | 
  •  

質問

Tarファイルのコンテンツをある程度のレベルにしかリストしないのだろうか?

理解します tar tvf mytar.tar すべてのファイルがリストされますが、ディレクトリのみをある程度レベルまで表示したい場合もあります。

同様に、コマンドの場合 ls, 、表示されるサブディレクトリのレベルを制御するにはどうすればよいですか?デフォルトでは、直接のサブディレクトリのみが表示されますが、それ以上進みません。

役に立ちましたか?

解決

tar tvf scripts.tar | awk -F/ '{if (NF<4) print }'


drwx------ glens/glens       0 2010-03-17 10:44 scripts/
-rwxr--r-- glens/www-data 1051 2009-07-27 10:42 scripts/my2cnf.pl
-rwxr--r-- glens/www-data  359 2009-08-14 00:01 scripts/pastebin.sh
-rwxr--r-- glens/www-data  566 2009-07-27 10:42 scripts/critic.pl
-rwxr-xr-x glens/glens     981 2009-12-16 09:39 scripts/wiki_sys.pl
-rwxr-xr-x glens/glens    3072 2009-07-28 10:25 scripts/blacklist_update.pl
-rwxr--r-- glens/www-data 18418 2009-07-27 10:42 scripts/sysinfo.pl

ユーザー名 /グループ内で /内で、必要なレベルは3+であることに注意してください。あなたがただそうするなら

tar tf scripts.tar | awk -F/ '{if (NF<3) print }'

scripts/
scripts/my2cnf.pl
scripts/pastebin.sh
scripts/critic.pl
scripts/wiki_sys.pl
scripts/blacklist_update.pl
scripts/sysinfo.pl

もう2つだけです。

おそらく出力をパイプすることができます ls -R これに awk スクリプト、そして同じ効果があります。

他のヒント

深さ= 1

tar --exclude="*/*" -tf file.tar


深さ= 2

tar --exclude="*/*/*" -tf file.tar

私たちが伝えることができればいいでしょう find タールファイルの中を見るコマンドですが、それが可能であるとは思いません。

たとえば、ディレクトリセパレーターの数を制限することは、迅速かつ醜い(そして困難ではない)方法です。

 $ tar tvf myfile.tar | grep -E '^[^/]*(/[^/]*){1,2}$'

2 2つ以下のスラッシュを表示するように指示します(私の場合、1つはユーザー/グループセパレーターによって既に生成されています)、したがって、せいぜい1つの深さでファイルを表示するようにします。 2の代わりにさまざまな数字で試してみたいと思うかもしれません。

別のオプションはです Archivemount. 。あなたはそれをマウントし、それにCD。その後、他のファイルシステムと同様に、何でもできます。

$ archivemount /path/to/files.tgz /path/to/mnt/folder

TARメソッドよりも速く見えます。

私は同意します レオンブロイの答え - ターボール自体の中でこれを簡単に行う方法はありません。

あなたの質問の第2部については、 ls 最大深度オプションはありません。再発することができます すべてのls -R, 、しかし、それはしばしばあまり役に立ちません。

ただし、両方でこれを行うことができます findtree. 。たとえば、ファイルとディレクトリを1レベルの深いリストにリストするには、できる

find -maxdepth 2

また

tree -L 2

tree またあります -d ディレクトリを再帰的にリストしますが、ファイルではなくオプションがあります。 -L, 、 一般に。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top