- PR -

lsコマンドについて

投稿者投稿内容
やすけ
ベテラン
会議室デビュー日: 2003/08/20
投稿数: 87
投稿日時: 2007-01-17 19:44
度々nakamuraです。
lsコマンドで例えば/aaaの配下すべてを表示できるようなオプション等ありますでしょうか?またはlsコマンドでなくてもよいのですが。
/aaaの配下すべてのファイルの一覧をbshで取得して、ログに出力する処理を作りたいと考えています。
どなたかそんなことしたことあるって方いらっしゃいますか?
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2007-01-17 19:56
man ls
あるかな
大ベテラン
会議室デビュー日: 2003/11/04
投稿数: 245
投稿日時: 2007-01-17 22:48
もしくは find ですか。
#ls の方が簡単ですけど。
Ay
常連さん
会議室デビュー日: 2006/10/29
投稿数: 45
投稿日時: 2007-01-18 00:44
引用:

やすけさんの書き込み (2007-01-17 19:44) より:

lsコマンドで例えば/aaaの配下すべてを表示できるようなオプション等ありますでしょうか?またはlsコマンドでなくてもよいのですが。



「全て」が「再帰的に」という意味なら find が良いかもです。
まちろか
会議室デビュー日: 2006/11/24
投稿数: 3
投稿日時: 2007-01-18 01:20
ls -R /aaa
でどうでしょ。
やすけ
ベテラン
会議室デビュー日: 2003/08/20
投稿数: 87
投稿日時: 2007-01-18 09:09
あるかな、Ay、まちろかさんレスありがとうございます。
ls -R /aaaだと、ディレクトリも表示されますよね。。。出来れば
ディレクトリは、表示して欲しくないのですが。そんな都合のいいものは
ないのでしょうか。
出来ればディレクトリは親ディレクトリ含めて表示したくありません。
[root@server aaa]$ ls -altR /aaa/bbb/
/aaa/bbb/:
合計 2772
drwxrwxrwx 11 root root 4096 12月 11 17:49 ..
drwxr-xr-x 2 root root 4096 8月 22 16:40 test
drwxr-xr-x 4 root root 4096 3月 28 2006 .
-rwxrwxr-x 1 root root 50132 3月 28 2006 test1
drwxr-xr-x 2 root root 4096 3月 28 2006 testtest

/aaa/bbb/test:
合計 556
drwxr-xr-x 2 root root 4096 8月 22 16:40 .
-rwxrwxr-x 1 root root 50013 8月 22 16:40 ccccc
drwxr-xr-x 4 root root 4096 3月 28 2006 ..
-rwxr-xr-x 1 root root 228 3月 28 2006 test2

/aaa/bbb/testtest:
合計 48
drwxr-xr-x 4 root root 4096 3月 28 2006 ..
drwxr-xr-x 2 root root 4096 3月 28 2006 .
-rwxr-xr-x 1 root root 285 3月 28 2006 test3
あるかな
大ベテラン
会議室デビュー日: 2003/11/04
投稿数: 245
投稿日時: 2007-01-18 09:25
find /aaa -type f -exec basename {} \;
#ls -l 結果のディレクトリだけ削除した結果であれば、違う方法になります。

追記:ディレクトリ名間違えました。。。

[ メッセージ編集済み 編集者: あるかな 編集日時 2007-01-18 09:27 ]
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2007-01-18 09:25
おはようございます。
「出来ればディレクトリは、表示して欲しくないのですが。」というのが、
・“.”および“..”がいらない
 → ls の -a オプションの代わりに、-A オプションを使いましょう。

・ディレクトリの名前は出力して欲しくない
 単にファイルのリストが欲しいなら、“find /aaa \! -type d”のように find で。
 ls -R のような、「各ディレクトリ毎のファイル一覧」の形式が良ければ、ls の -F と grep や sed を組み合わせると良いでしょう。
 “ls -ARF /aaa | grep -v '/$' | sed -e 's/[@*|=]$//'”
 “ls -ARF /aaa | sed -e '/\/$/d; s/[@*|=]$//'”
 あたりで。
 ※ファイル名の最後が、@ や * や | や = になっている変なファイルがあると困りますけど。

[ メッセージ編集済み 編集者: angel 編集日時 2007-01-18 09:49 ]

スキルアップ/キャリアアップ(JOB@IT)