私のタスクでは、ツリー内のすべてのファイル(ディレクトリ、そのすべてのサブディレクトリ、それらのすべてのサブディレクトリなど)をリストする必要があります。
NautilusまたはKrusaderで表示したいのですが、コマンドラインソリューションも興味深いものです(この場合、ファイルの完全な名前、サイズ、および変更時間を一覧表示する必要があります)。
ls -alR
これがおそらく最も簡単な方法です。検索をより細かく制御するために、検索スクリプトをハッキングしています。
find /path/ -printf "%TY-%Tm-%Td\t%s\t%p\n"
好きなだけprintfフォーマットで遊ぶことができます。これにより、必要な方法でフォーマットすることができます。これは、別のアプリケーションで出力を使用している場合に非常に貴重です。
詳細: http://linux.about.com/od/commands/l/blcmdl1_find.htm
読みやすくするために、column
コマンドを使用してすべてをパイプ処理すると、自動的にサイズが変更されて整列します。
find /path/ -printf "%TY-%Tm-%Td\t%s\t%p\n" | column -t
Oliが答えたように、find
を使用すると、ディレクトリツリー全体を検索できます。
find /path/ -printf "%TY-%Tm-%Td\t%s\t%p\n"
# Where %TY will display the mod. time year as 4 digits
# %Tm will display the mod. time month as 2 digits
# %Td will display the mod. time day as 2 digits
# %s displays the file size in bytes
# %p displays the full path name of the file
-type f
オプションを使用して、結果をファイルのみに制限することもできます。ファイルパターンを照合する場合は、-name
または-iname
オプション(それぞれ大文字と小文字を区別する一致と大文字と小文字を区別しない一致)が必要です。 find
のmanページを読んでください-検索の絞り込み/絞り込みに使用できるオプションがかなりあります。
余談ですが、複数の画面のデータが返されることを期待している場合は、less
を介して結果をパイプすることを忘れないでください。
@Oli:+1何か新しいことも学んだ-column
。以前は使用していませんでした。
ls
は、Ubuntuおよびその他のLinuxおよびUnixオペレーティングシステムのファイルを一覧表示する標準コマンドです。 ls
は、これまで出会ったすべてのUnixシステムにインストールされているので、学ぶのに特に役立ちます。デフォルトでは、これを実行すると現在のディレクトリ内のファイルのみが表示されます。
ただし、-R
'flag'はrecursiveオプションです(大文字のRではなく、rではないことに注意してください)すべてのサブディレクトリも同様です。
「詳細」も要求しました-このためには、-l
フラグ(番号1ではなく小文字のL)が必要です。これにより、ファイルのアクセス許可情報に加えて、ファイルサイズ、時刻/日付情報、およびファイル名が提供されることに注意してください。
隠しファイル/フォルダーも表示したい場合(同等の Ctrl+H Nautilusで)-a
'all'フラグを追加します。
フラグをマージして、次のようなものを提供できます。
ls -lR
適切なサイズのフォルダーでこれを実行すると、非常に長い出力が生成され、画面が非常に速くスクロールダウンすることがわかります。これを回避するには、ls
と呼ばれるプログラムを介してless
の出力を「パイプ」することができます(名前は類似のmore
のパロディです。 。
ls -lR | less
これにより、PageUp/Downとともに上下矢印キーを使用して、より快適な速度で出力を確認できます。
このために特別にプログラムを作成しました- Directory Snapshot 。
ディレクトリを再帰的に反復し、検出されたすべてのファイルとフォルダの名前とサイズを、入力ディレクトリと同様の組織を持つきちんと構造化されたHTMLファイルに保存します。
つまり、これは dir /s
または tree /f
コマンドのハイパーリンク版と考えることができます。
Krusaderの使用:
これにより、他のパネルなどにドラッグしてロット全体を処理できます。
Nautilusスクリプトはどうですか?
#!/bin/bash
#
# AUTHOR: (c) 2013 Glutanimate (https://askubuntu.com/users/81372)
# NAME: DirTree 0.1
# DEPENDENCIES: zenity tree (install with Sudo apt-get install zenity tree)
# LICENSE: GNU GPL v3 (http://www.gnu.org/licenses/gpl.html)
#
# DESCRIPTION: Creates a directory tree at the current location. If you want you
# can filter the output by a pattern (e.g. *.avi to only include avi
# files).
TITLE=DirTree
# Get working directory
WORKINGDIR="`python -c 'import gio,sys; print(gio.File(sys.argv[1]).get_path())' $NAUTILUS_SCRIPT_CURRENT_URI`"
# Time and date
TIME=$(date +"%Y-%m-%d_%H%M%S")
# Filter pattern
zenity --question --title "$TITLE" --text "Do you want to filter by a specific file pattern?"
if [ "$?" = "1" ]
then
customtree="tree"
else
PATTERN=$(zenity --entry --title "$TITLE" --text="Please enter a file pattern (e.g. *.avi)")
if [ -z "$PATTERN" ]
then
exit
else
customtree="tree -P $PATTERN"
fi
fi
# Directory tree
$customtree "$WORKINGDIR" > "$WORKINGDIR/directorytree_$TIME.txt"
インストール手順: Nautilusスクリプトのインストール方法
これはNemoでも機能します。