0

親ディレクトリとそのサブディレクトリ内のすべてのファイルを一覧表示しようとしています。ただし、別の場所からこのコマンドを実行しています。したがって、最初に、(このコマンドを実行したい場所から) ディレクトリにトラバースする必要があります。

ls の代わりに find コマンドを使用していることに注意してください。これは、その前に各ファイルの絶対パスもリストしたいためです。これは ls コマンドでは不可能です。

ここに私がやっていることがあります:

cd ../../../;cd level1_dir1;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n"

このコマンドは出力を表示しません。

ディレクトリ構造は次のとおりです。

level1_dir1

これには複数のサブディレクトリがあります。

level2_dir1
level2_dir2

....

level2_dir10

これらのサブディレクトリのそれぞれにも、その中にサブディレクトリとファイルがあります。

ただし、今私が行う場合:

cd ../../../;cd level1_dir1/level2_dir1;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n"

level2_dir1 のすべてのサブディレクトリに対して再帰が適切に実行され、次のような出力が表示されます。

date level1_dir1/level2_dir1/path/to/file/filename

したがって、次のように (ワイルド文字を使用して) すべてのレベル 2 ディレクトリを出力したいと考えました。

cd ../../../;cd level1_dir1/*;find $(pwd) . -name *.* -printf "%TY-%Tm-%Td\t%p\n"

ただし、レベル2の最初のディレクトリ(つまり、level2_dir1)の結果のみを出力します

すべてのサブディレクトリのファイルを一覧表示するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

0

これはどう?

find ../../../level1_dir1 -printf "%TY-%Tm-%Td\t%p\n"

すべてのファイルが必要な場合は、find コマンドで -name を指定する必要さえありません。ディレクトリを表示せずにファイルのみを表示する場合は、-printf の前に「-type f」を追加します。

お役に立てれば...

于 2013-03-18T18:09:24.450 に答える