私は現在のディレクトリの下にあるすべてのディレクトリとファイルを一覧表示し、それらがファイルまたはディレクトリであるかどうかを次のコマンドで書き込もうとしました:
_find -exec echo `echo {} : ;if [ -f {} ]; then echo file; else echo directory;fi` \;
_
私はそれがばかげたコマンドであることを知っています、_-type f
_や_-type d
_などの他のものを使用できますが、そのコードが期待どおりに機能しなかった理由を知りたいです。それらすべてにディレクトリを出力するだけです。たとえば、find
の出力は次のとおりです。
_.
./dir
./dir/file
_
私のコードの出力は:
_. : directory
./dir : directory
./dir/file : directory
_
そしての出力
_echo `echo dir/file : ;if [ -f dir/file ]; then echo file; else echo directory;fi`
_
です
_dir/file : file
_
私は_Ubuntu 14.10
_に取り組んでおり、find (GNU findutils) 4.4.2
を使用しています
find
とともにif; then; else; fi
を実行する別の方法は次のとおりです。
find |
while read p; do if [ -f "$p" ]; then echo file; else echo directory; fi; done