2013-03-25 55 views
3

我试图创建一个zip文件,它将在多台服务器上运行以比较服务器的内容。出于许多原因,我要比较的最简单和最好的信息是目录列表的文本文件...但我需要没有修改日期,因为它们使比较显示在这种情况下不重要的差异。如何在没有修改日期的Unix中列出文件

所以,如果我运行命令ls -la创建文本输出比较,我得到的会得到这样的事情:

drwxr-xr-x. 6 root root  4096 Mar 20 14:59 . 
dr-xr-xr-x. 22 root root  4096 Feb 18 03:20 .. 
drwxr-xr-x. 9 web ad   4096 Oct 30 14:35 apache-tomcat-6.0.18 
drwxr-xr-x. 9 web ad   4096 Mar 24 03:00 apache-tomcat-6.0.36 
lrwxrwxrwx. 1 root root   5 Oct 30 14:06 java -> java6 
lrwxrwxrwx. 1 root root   16 Oct 30 14:05 java6 -> jdk/jdk1.6.0_37/ 
lrwxrwxrwx. 1 root root   16 Mar 20 14:59 java7 -> jdk/jdk1.7.0_17/ 
drwxr-xr-x. 4 root root  4096 Mar 20 15:02 jdk 
lrwxrwxrwx. 1 root root   21 Nov 6 15:09 tomcat -> apache-tomcat-6.0.36/ 

我想是使用是ls -la | cut -c 1-31但只需要一个列表(字符1-31),我真的很想在日期后的数据。我与Unix的比较新的和很好奇,如果任何人知道如何制作一个列表,会是这个样子:

drwxr-xr-x. 6 root root  4096 . 
dr-xr-xr-x. 22 root root  4096 .. 
drwxr-xr-x. 9 web ad   4096 apache-tomcat-6.0.18 
drwxr-xr-x. 9 web ad   4096 apache-tomcat-6.0.36 
lrwxrwxrwx. 1 root root   5 java -> java6 
lrwxrwxrwx. 1 root root   16 java6 -> jdk/jdk1.6.0_37/ 
lrwxrwxrwx. 1 root root   16 java7 -> jdk/jdk1.7.0_17/ 
drwxr-xr-x. 4 root root  4096 jdk 
lrwxrwxrwx. 1 root root   21 tomcat -> apache-tomcat-6.0.36/ 

感谢

+1

您可以过滤ls'的'输出,但可以是不可靠的,因为' ls'输出不是真的被设计成机器可读的。如果你有GNU'find','-printf'选项允许你以任何你喜欢的格式有选择地打印信息。 – 2013-03-25 19:57:34

回答

7

我觉得你的问题的最佳解决方案是使用AWK。

ls -la | awk '{print $1, $2, $3, $4, $5, $9}' 

所以你得到的输出是这样的:

drwxr-xr-x. 6 root root 4096 . 
dr-xr-xr-x. 22 root root 4096 .. 
drwx------+ 5 user staff 170 Desktop 
drwx------+ 16 user staff 544 Documents 
drwx------+ 6 user staff 204 Downloads 
+0

这个很好用!谢谢。我一直知道我需要将我的知识扩展到awk。谢谢。 – Greg 2013-03-25 20:21:15

+0

不幸的是,这将失败的文件名称空间像'莫尔坏'; - ls -ld moar \ bad \; | AWK '{打印$ 1,$ 2,$ 3,$ 4 $ 5,$ 9}' -rw-R - R-- 1根根2 moar 另一种可能的解决方案:LS -ld --time式= '+'。使用空格式的时间样式 – glyph 2017-01-06 21:00:28

5

发布一个替代的解决方案,因为接受一个将在文件名失败的空间。

在支持它(不支持Mac OS),Linux等系统使用--time风格与空格式

[[email protected] junk]# ls -lah 
total 12K 
drwxr-xr-x 2 root root 4.0K Jan 6 16:12 . 
drwxr-xr-x 4 root root 4.0K Jan 6 15:38 .. 
-rw-r--r-- 1 root root 0 Jan 6 12:42 '$#%bad' 
-rw-r--r-- 1 root root 2 Jan 6 16:12 'moar bad;' 
-rw-r--r-- 1 root root 0 Jan 6 12:40 'quote"file' 
-rw-r--r-- 1 root root 0 Jan 6 12:41 'single'\''quote'\''file' 

[[email protected] junk]# ls -lah --time-style='+' . 
total 12K 
drwxr-xr-x 2 root root 4.0K . 
drwxr-xr-x 4 root root 4.0K .. 
-rw-r--r-- 1 root root 0 '$#%bad' 
-rw-r--r-- 1 root root 2 'moar bad;' 
-rw-r--r-- 1 root root 0 'quote"file' 
-rw-r--r-- 1 root root 0 'single'\''quote'\''file' 
[[email protected] junk]#