理解するためにもう一つの答え(グレンジャックマン):
find / -type d -print0 | while read -r -d '' dir; do ls -ltr "$dir" | sed '$!d'; done
最初のステップは、-r
コマンドオプションの使い方を理解することですread
。
一度だけするだけで十分だと思います。
man read
オプションが何を意味するのかを調べましたが、-r
マニュアルページにオプションの説明がまったく含まれていないことを知ってグーグルをしました。いくつかのread -t
例がありますread -p
がありませんread -r
。
ベストアンサー1
スタンドアロンコマンドはありませんread
。代わりに組み込みシェルなので、マニュアルページに記載されていますbash
。
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
︙
-r
バックスラッシュはエスケープ文字として機能しません。バックスラッシュは行の一部と見なされます。特に、バックスラッシュ - 改行ペアは行連続で使用できません。
したがって、要約すると、末尾のread
バックスラッシュ文字を使用して長い行を分割することは通常許可され、その行は通常書き直されます。このやや驚くべき動作はを使用して無効にすることができます-r
。