質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

10260閲覧

ls: cannot access

coko1

総合スコア276

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

1グッド

0クリップ

投稿2016/09/23 06:11

/aaa/bbb/ccc/ddd/abcd01 - コピー
/aaa/bbb/ccc/ddd/abcd01 - コピー/01.txt
/aaa/bbb/ccc/ddd/abcd01 - コピー/02.txt

findコマンドを使って指定されたディレクトリ以下の情報を検索したら上記のようなディレクトリの構造がありました。
findで検索した結果をlsしたら上記の構造の部分で以下のようなエラーを吐きました。findだけであれば問題はないのですが…なぜなのでしょうか

ls: cannot access /aaa/bbb/ccc/ddd/abcd01: そのようなファイルやディレクトリはありません
ls: cannot access -: そのようなファイルやディレクトリはありません
ls: cannot access コピー: そのようなファイルやディレクトリはありません
ls: cannot access /aaa/bbb/ccc/ddd/abcd01: そのようなファイルやディレクトリはありません
ls: cannot access -: そのようなファイルやディレクトリはありません
ls: cannot access コピー/01.txt: そのようなファイルやディレクトリはありません
ls: cannot access /aaa/bbb/ccc/ddd/abcd01: そのようなファイルやディレクトリはありません
ls: cannot access -: そのようなファイルやディレクトリはありません
ls: cannot access コピー/02.txt: そのようなファイルやディレクトリはありません

上手く説明できていない気がしますが、このようなことが起きる原因や解決法があれば教えていただけると嬉しいです。

WatanabeHira👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

findコマンドの結果から

find . | xargs -0 ls
find . -ls
find . -exec ls {} ;

結果でも””で括れば表示ができます
find . | while read ff; do ls "$ff"; done

投稿2016/09/23 06:37

編集2016/09/23 06:51
A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coko1

2016/09/27 00:04

遅れてしまったのですが質問よいでしょうか?普通にls -l等で表示させるとファイルのサイズが異なっていてもスペースで終端を合わせてくれていると思うのですが、-execなど、A.Ichiさんの方法だとサイズが違ってもスペースひとつ分で統一されていて見づらいものになってしまいます。どうにかならないでしょうか?
A.Ichi

2016/09/27 00:44

終端がずれるのは知っておりました、確かに見ずらいですね、findのls結果フォーマットと同じ表示をするとして ls -dils を行うのはどうでしょうか?xargsを使いますが。
coko1

2016/09/27 01:00 編集

そうなんです。期待には近いのですがその一部分が引っかかってしまって。 xargsですとどのようにスペース部分をエスケープしたらよいでしょうか? find . | xargs -0 ls だとファイル名が長すぎますと表示されてしまうのですが。 結局はエスケープした結果終端がずれているんですよね?
A.Ichi

2016/09/27 01:11

xargsは、lsコマンドへのパラメータ渡しのため、ファイル名がディレクトリ含め長さが大量の場合エラーなってしまいます。ですので上記のwhileにて行う事で対応可能ですが・・・
A.Ichi

2016/09/27 01:25

echo $(find .) | xargs -0 ls ではどうでしょうか?
A.Ichi

2016/09/27 01:25

echo $(find .) | xargs -0 ls -dils でした
A.Ichi

2016/09/27 01:30

すみません -0がだめですね。
coko1

2016/09/27 01:44

そうなんです。やってはみたものの詰まってしまいした
A.Ichi

2016/09/27 02:26

苦し紛れですが find ./ -type f -printf "%a %10s '%f'\n"
A.Ichi

2016/09/27 02:32

訂正 find ./ -type f -printf "%a %10s %f\n"
A.Ichi

2016/09/27 02:46

右詰も可能の様です find . -type f -printf "%-40a %-40h %-20s %-20f\n" ディレクトリに日本語が入るとずれますが・・
coko1

2016/09/27 03:03 編集

フォーマットを決めて出力する感じですね!これが一番近いですかね。ご協力ありがとうございます。
guest

0

スペースをエスケープしていないので、複数のディレクトリとして扱われたんだと思います。
以下のように\でエスケープするかダブルコーテーションでくくれば問題ないとおもいます

$ls /aaa/bbb/ccc/ddd/abcd01\ -\ コピー $ls "/aaa/bbb/ccc/ddd/abcd01 - コピー"

findはexecを使えばエスケープいらないみたいですよ

$ find . -type d -exec ls {} \;

find + xargsだとこういう手もあるらしい

$ find . -type d -print0 | xargs -0 ls -l

投稿2016/09/23 06:16

編集2016/09/23 06:43
popobot

総合スコア6586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coko1

2016/09/23 06:23

findの結果に対してlsを行っているのでその処置は取れないのではないでしょうか?
popobot

2016/09/23 06:24

できると思いますよ。実際のコマンドを書いてほしいです
coko1

2016/09/23 06:28

find パス | xargs ls -オプション といった感じです。もっと細かく書いた方がいいでしょうか?
popobot

2016/09/23 06:30

回答欄に書きましたが、xargsではなくexecを使うとエスケープいらないようです。試してみてください。
coko1

2016/09/23 07:15

-execでやってみたところ、すごく期待したものに近い結果になりました。ですが少し気になる点がありました。 普通にls -lで表示させるとファイルのサイズが異なっていてもスペースで終端を合わせてくれていると思うのですが、-execではサイズが違ってもスペースひとつ分で統一されていて見づらいものになってしまいます。どうにかならないでしょうか?
popobot

2016/09/23 07:21

ここのディレクトリごとの結果でスペースを合わせているので、全部の結果で合わせるのは無理だと思いますよ。
coko1

2016/09/23 07:32

そうですよね...見やすいように整えて表示させたいんですが。そうなるとディレクトリの名前そのものを変えるしか方法ないですかね?
popobot

2016/09/23 07:39

最終的にどう使いたいかによりますが、各間のスペースを上手くタブ1個に置き換えて、エクセル等で読むとかですかね。 自分はインデントが少しずれたぐらい気にしないですが...。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問