回答:
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
「フラグ」は再帰オプションであり(rではなく大文字のRに注意してください)、すべてのサブディレクトリも表示されます。
「詳細」も要求しました-このためには、-l
フラグが必要です(ナンバー1ではなく、小文字のLです)。これにより、ファイルのアクセス許可情報に加えて、ファイルサイズ、時刻/日付情報、およびファイル名が提供されることに注意してください。
隠しファイル/フォルダー(Nautilus のCtrl+ Hと同等)も表示する場合は、-a
「all」フラグを追加します。
フラグをマージして、次のようなものを提供できます。
ls -lR
適切なサイズのフォルダでこれを実行すると、非常に長い出力が生成され、画面が非常に速くスクロールダウンします。これを回避するために、ls
呼び出されたプログラムを介して出力を「パイプ」することができますless
(名前はmore
最初に存在した類似のパロディですが、より多くの機能があります)。
ls -lR | less
これにより、PageUp / Downとともに上下の矢印キーを使用して、より快適な速度で出力を確認できます。
どの程度ノーチラススクリプト?
#!/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スクリプトをインストールするにはどうすればよいですか?
このために特別にプログラムを作成しました-Directory Snapshot。
再帰的にディレクトリを反復処理し、検出されたすべてのファイルとフォルダの名前とサイズを、入力ディレクトリと同様の組織を持つきちんと構造化されたHTMLファイルに保存します。
つまり、これはdir /s
or tree /f
コマンドのハイパーリンクバージョンと考えることができます。
dir
とtree
、私はUbuntuの上で、意志この作品を依頼してきたので、DOS形式のオプションを使用して?
これらを.bashrcファイルに入れることができます
function _get_tree(){ ls -alR | while read LINE; do echo $LINE | grep ":$" > /dev/null; if [ $? -eq 0 ]; then VAR=$(echo $LINE | grep ":$"| sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/' | tee /dev/tty); fi; echo $LINE | grep "^-" > /dev/null; if [ $? -eq 0 ]; then size=${#VAR}; for i in $(eval echo "{1..$size}"); do echo -n ' '; done; echo -n '..'; echo $LINE | cut -d ' ' -f9; fi; done; };
alias get_tree='_get_tree'
これで、任意のディレクトリ内でget_treeコマンドを使用でき、階層全体が表示されます。
構文:
$ get_tree
サンプル出力:
.
..test.sh
|-2
..123.log
|---3
|-----4
|-5
|---6
お役に立てれば !!