ディレクトリツリーの最も深いレベルでファイル名を指定する方法

ディレクトリツリーの最も深いレベルでファイル名を指定する方法

基本的なBashコマンドとスクリプトを使用してディレクトリツリーの最も深いレベルで任意のファイル名を指定するにはどうすればよいですか?

関数なしで1行のコードでできる方法を探しています。また、現在のディレクトリから始めて下に作業しているとします。

findgrepおよびsedawk許可されるコマンドです。

現在の試みは次のとおりですが、機能しません。

検索 - d |宣言COUNT = -1;宣言 C=$(echo $LINE | s/\// \n \//g" | grep '/' -c); echo $C; if [ $COUNT -gt $C ]; then let COUNT=$C ; let P=$LINE; echo "complete";

これによりディレクトリのみが検索されます。

最も簡単な方法でこの問題を解決するには?

ベストアンサー1

変なお願いですね!

最も深いディレクトリにあるファイルをインポートするには、find+を使用します。awk

bash-3.2$ deepest=$(find / -type f | awk -F'/' 'NF > depth {
>     depth = NF;
>     deepest = $0;
> }
>
> END {
>     print deepest;
> }')

${deepest}コマンドで使用するmvことは練習用ですが、次の5行を使用するとより役に立ちます。

bash-3.2$ echo "${deepest}"
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb

bash-3.2$ echo "${deepest%.*}"
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires

bash-3.2$ echo "${deepest%/*}"
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina

bash-3.2$ echo "${deepest##*/}"
Buenos_Aires.rb

bash-3.2$ echo "${deepest##*.}"
rb

以下の質問が更新されました。

find -type d[...]」これによりディレクトリのみが検索されます。[...] この問題を最も簡単な方法で解決するには? 」。

-type f供給することによってfindすべて検索文書( f)、すべてではない目次d)。

おすすめ記事