Cyc*_*one 5 command-line ls freebsd tcsh
首先,这不是重复的:Linux ls to show only filename date and size
因为我想另外打印实际的目录名称。
我一直在使用这个命令:
ls -l | awk '{print $5, $9}'
Run Code Online (Sandbox Code Playgroud)
获取每个文件的大小和名称。
但是现在,我需要另外打印文件目录。就像当前目录是 一样/path/to/somewhere
,我想要:
somewhere/file 1234
somewhere/other-file 4567
Run Code Online (Sandbox Code Playgroud)
而不是仅仅
file 1234
other-file 4567
Run Code Online (Sandbox Code Playgroud)
那可能吗?
你的意思是这样,只是在每个文件名前加上当前目录?
ls -l | awk '{printf("%s %s/%s\n", $5, ENVIRON["PWD"], $9); }'
Run Code Online (Sandbox Code Playgroud)
或者是其他东西?
好的,显然你想要的是
$ cd /some/path/to/somewhere
$ <insert command here>
somewhere/file1 size1
somewhere/file2 size2
...
Run Code Online (Sandbox Code Playgroud)
是这正确吗?
如果是这样,您需要的更改(假设是 POSIX shell)是这样的:
ls -l | DIR=${PWD##*/} awk '{printf("%s/%s %s\n", ENVIRON["DIR"], $9, $5); }'
Run Code Online (Sandbox Code Playgroud)
反而。
在 中tcsh
,正如您的Illegal variable name
错误表明您正在使用的那样,您将使用:
ls -l | env DIR=$PWD:t:q awk '{printf("%s/%s %s\n", ENVIRON["DIR"], $9, $5); }'
Run Code Online (Sandbox Code Playgroud)
反而。
如果它仍然不起作用,请在您的问题中描述您的平台、shell、awk 版本等 - 评论线程变得很长,我的猜测用完了:-)
归档时间: |
|
查看次数: |
32256 次 |
最近记录: |