通过管道 ls 输出获取所有目录的路径
我想列出当前目录中的所有目录 ls -d * 并列出它们的所有完整路径。我知道我需要将输出传输到某个东西,但只是不确定是什么。我不知道是否可以将输出通过管道传输到 pwd 或其他东西。
期望的结果如下。
$ cd /home/
$ ls -d *|<unknown>
/home/Directory 1
/home/Directory 2
/home/Directory 3
是需要通过管道传输到 pwd
或其他内容的部分。
我的总体目标是创建一个脚本,该脚本将允许我为提供给它的每个完整路径构造一个命令。我将输入 build
,它会在内部为每个命令运行以下命令。
cd <full directory path>; JAVA_HOME=jdk/Contents/Home "/maven/bin/mvn" clean install
I want to list all directories ls -d *
in the current directory and list out all their full paths. I know I need to pipe the output to something, but just not sure what. I don't know if I can pipe the output to a pwd
or something.
The desired result would be the following.
$ cd /home/
$ ls -d *|<unknown>
/home/Directory 1
/home/Directory 2
/home/Directory 3
<unknown>
being the part which needs to pipe to pwd
or something.
My overall goal is to create a script which will allow to me construct a command for each full path supplied to it. I'll type build
and internally it will run the following command for each.
cd <full directory path>; JAVA_HOME=jdk/Contents/Home "/maven/bin/mvn" clean install
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
简单地尝试一下:
或者
Try simply:
Or
注意:以上命令适用于 bash 或 sh,不适用于 csh。 (Bash 是 Linux 和 MacOSX 中的默认 shell。)
Note: The above command works in bash or sh, not in csh. (Bash is the default shell in linux and MacOSX.)
将为你生成脚本。
will generate the script for u.
我是否还建议在您的 ls 构造中使用
--
,以便 ls -d $PWD/*/ 变成 ls -d -- $PWD/*/ (插入额外的--
)?这对于目录或文件名以-
字符开头的情况有所帮助:在这种情况下,
ls -d */
结果为:但是,
ls - d -- */
将导致:然后,当然,您可以使用上面指示的脚本(只要您在调用
ls 时包含
--
)。Might I also suggest using
--
within yourls
construct, so thatls -d $PWD/*/
becomesls -d -- $PWD/*/
(with an extra--
inserted)? This will help with those instances where a directory or filename starts with the-
character:In this instance,
ls -d */
results in:However,
ls -d -- */
will result in:And then, of course, you can use the script indicated above (so long as you include the
--
any time you callls
).不需要管道:
令我惊讶的是,打印语句中的命令也有效:
No piping neccessary:
to my surprise, a command in the print statement works too: