用于包含额外信息的目录列表的bash脚本
我需要知道如何在用于包含额外信息的目录列表的bash脚本,bash,Bash,我需要知道如何在bash脚本中使用哪些命令,这些命令会给我这样一个目录列表(请注意末尾的额外行) 标准的ls命令无法做到这一点,因此我想知道我可以在bash脚本中使用什么来实现这一点。您可以尝试使用以下命令: $ ls -l 我想你要找的是: ls-al您想要使用的基本命令是ls-l,但是您需要对输出进行后处理以获得最后四行 例如,这里有一个可以得到前三项加上第四项,我假设这是为所有者设置了执行位的常规文件数: #!/usr/bin/bash tmpfile=/tmp/tmpfile.$$ l
bash
脚本中使用哪些命令,这些命令会给我这样一个目录列表(请注意末尾的额外行)
标准的
ls
命令无法做到这一点,因此我想知道我可以在bash
脚本中使用什么来实现这一点。您可以尝试使用以下命令:
$ ls -l
我想你要找的是:
ls-al
您想要使用的基本命令是ls-l
,但是您需要对输出进行后处理以获得最后四行
例如,这里有一个可以得到前三项加上第四项,我假设这是为所有者设置了执行位的常规文件数:
#!/usr/bin/bash
tmpfile=/tmp/tmpfile.$$
ls -l | tee ${tmpfile}
echo
echo "Total bytes:" $(awk '{sum += $5} END {print sum}' ${tmpfile})
echo "Total files:" $(grep -v '^total ' ${tmpfile} | grep -v '^d' | wc -l)
echo "Directories:" $(grep -v '^total ' ${tmpfile} | grep '^d' | wc -l)
echo "And scripts:" $(grep -v '^total ' ${tmpfile} | grep '^-..x' | wc -l)
rm -f ${tmpfile}
哪些产出:
total 1589
-rwxr-xr-x 1 pax root 57 Oct 3 14:24 Cygwin.bat
-rw-r--r-- 1 pax root 7022 Oct 3 14:24 Cygwin.ico
drwxr-xr-x+ 1 pax root 1048576 Oct 3 14:20 bin
dr-xr-xr-x 4 pax None 0 Nov 3 17:06 cygdrive
drwxrwxr-x+ 1 pax None 0 Oct 3 14:05 dev
drwxr-xr-x+ 1 pax root 32768 Oct 3 14:20 etc
drwxrwxrwt+ 1 pax root 0 Oct 3 14:13 home
drwxr-xr-x+ 1 pax root 524288 Oct 3 14:19 lib
drwxr-xr-x+ 1 pax root 0 Oct 3 13:35 opt
dr-xr-xr-x 10 pax None 0 Nov 3 17:06 proc
drwxr-xr-x+ 1 pax root 0 Oct 3 13:59 sbin
drwxr-xr-x+ 1 pax None 0 Oct 3 14:10 srv
drwxrwxrwt+ 1 pax root 4096 Nov 3 17:06 tmp
drwxr-xr-x+ 1 pax root 4096 Oct 3 14:10 usr
drwxr-xr-x+ 1 pax root 4096 Oct 3 14:20 var
Total bytes: 1624999
Total files: 2
Directories: 13
And scripts: 1
但是,我不完全确定您是如何决定脚本的。如果它与我假设的不同,它仍然是可行的,你只需要找出实际的命令是什么(告诉我们你想要测量什么来获得值)。不,我不认为这是不合适的。这显然需要一个脚本来完成这项工作(即编程)。没有标准的
ls
参数可以将最后一部分与总计相加。你必须做一个脚本来为你做。谢谢你的回答。我刚从linux期中考试回来,它真的帮助了我!
total 1589
-rwxr-xr-x 1 pax root 57 Oct 3 14:24 Cygwin.bat
-rw-r--r-- 1 pax root 7022 Oct 3 14:24 Cygwin.ico
drwxr-xr-x+ 1 pax root 1048576 Oct 3 14:20 bin
dr-xr-xr-x 4 pax None 0 Nov 3 17:06 cygdrive
drwxrwxr-x+ 1 pax None 0 Oct 3 14:05 dev
drwxr-xr-x+ 1 pax root 32768 Oct 3 14:20 etc
drwxrwxrwt+ 1 pax root 0 Oct 3 14:13 home
drwxr-xr-x+ 1 pax root 524288 Oct 3 14:19 lib
drwxr-xr-x+ 1 pax root 0 Oct 3 13:35 opt
dr-xr-xr-x 10 pax None 0 Nov 3 17:06 proc
drwxr-xr-x+ 1 pax root 0 Oct 3 13:59 sbin
drwxr-xr-x+ 1 pax None 0 Oct 3 14:10 srv
drwxrwxrwt+ 1 pax root 4096 Nov 3 17:06 tmp
drwxr-xr-x+ 1 pax root 4096 Oct 3 14:10 usr
drwxr-xr-x+ 1 pax root 4096 Oct 3 14:20 var
Total bytes: 1624999
Total files: 2
Directories: 13
And scripts: 1