引数が渡されないとき、"ls -d"は"。"表示をスキップする方法はありますか?

引数が渡されないとき、"ls -d"は"。"表示をスキップする方法はありますか?

findxargs結果にコマンドが渡されましたls -d。一致するファイルがない場合は、次のようになります。

.

私の唯一の出力は基本的に次のようls -dになります。

.

..., (ファイル名) 引数が指定されていない場合。パラメータを渡さないときにls -dそれを省略し.て出力を表示しない方法はありますか?

修正するls -d:あなたは見せないと確信できません.

.

ls -d -A\                # Skip implied
   --hide=.\             # No, really, skip implied
   --ignore=.            # I mean it, damn it!

.

:)

答え1

xargsと一緒に使うにはあまりにもfind1980年代です...

たとえば、次のようになります。

find . -type d -exec ls -d {} + 

そして、lsコマンドは引数なしで呼び出されません。

findDavid Kornは1989年にSVr4にexecplus機能を追加しました。

答え2

あなたがタグ付けしましたしたがって、おそらく次のオプションを持つGNU xargsを実行します。

-r, --no-run-if-empty
    If the standard input does not contain any nonblanks, do not run the command. 

の場合find ... | xargs -r ls -d、何も一致しないとlsまったく始まりません。find

findそれでも.明示的に一致できます。これを防ぐには、! -name .検索式に追加してください。または、コマンドラインで指定されたパスと一致しないように-mindepth 1するには(GNU検索で)を使用します。find

ls(無視する方法は.よくわかりません。)

関連情報