Answers:
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
的手册页-您可以使用大量选项来缩小/缩小搜索范围。
顺便说一句,如果您希望将大量筛选的数据抛给您,请记住将结果传递给less
。
@Oli:+1我刚刚学到了一些新东西- column
。以前没有使用过。
ls
是在Ubuntu和其他Linux和Unix操作系统中列出文件的标准命令。ls
这对学习特别有用,因为您会发现它已安装在您遇到的每个Unix系统上。默认情况下,运行此命令仅显示当前目录中的文件。
但是,-R
“ flag”是递归选项(注意大写字母R,而不是r),该选项还将向您显示所有子目录。
您也要求“详细信息”-为此,您需要-l
标志(这是小写的L,而不是数字1)。请注意,这会为您提供文件权限信息以及文件大小,时间/日期信息和文件名。
如果您还想显示隐藏的文件/文件夹(在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脚本?
我专门为此创建了一个程序- 目录快照。
它以递归方式遍历目录,并将其遇到的所有文件和文件夹的名称和大小存储在结构整齐的HTML文件中,这些文件的组织结构与输入目录相似。
换句话说,可以将其视为dir /s
or tree /f
命令的超链接版本。
dir
和tree
用DOS风格的选择,所以我要问,将这项工作在Ubuntu?
这在Nemo中也适用。
您可以将它们放在您的.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
希望这可以帮助 !!