【发布时间】:2013-03-15 10:48:38
【问题描述】:
我正在尝试创建一个 zip 文件,该文件将在多个服务器上运行以比较服务器的内容。由于许多原因,我比较的最简单和最好的信息是目录列表的文本文件......但我需要没有修改日期,因为它们使比较显示在这种情况下无关紧要的差异。
因此,如果我运行命令 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/
谢谢
【问题讨论】:
-
您可以过滤
ls的输出,但这可能不可靠,因为ls的输出并不是真正设计为机器可读的。如果你有 GNUfind,-printf选项可以让你有选择地以你喜欢的任何格式打印信息。