gpt4 book ai didi

linux - 为什么在shell脚本中使用ls重定向只写入一个文件名

转载 作者:太空宇宙 更新时间:2023-11-04 05:55:49 24 4
gpt4 key购买 nike

我正在 RedHatOS 中构建 shell 脚本。

我尝试使用下面的正则表达式输出文件名。

#!/bin/bash

ls -1r rrr* > /tmp/memo.txt

/tmp/meme.txt 的内容是这样的

/tmp/rrr1.txt

我想将所有文件写入txt文件,就像我在控制台中做同样的事情

$ls -1r rrr* > /tmp/memo.txt
$cat /tmp/memo.txt

cat命令的结果是这样的

/tmp/rrr1.txt
/tmp/rrr2.txt

我不明白发生了什么。请告诉我为什么会发生这种情况,以及如何将 ls 命令的所有结果写入文件。

谢谢。

最佳答案

使用以下命令获取完整路径:

ls -d -1 $PWD/rrr*

结果:

/tmp/rrr1.txt
/tmp/rrr2.txt
/tmp/rrr3.txt

另外,使用 ls -1r 你会得到

rrr3.txt
rrr2.txt
rrr1.txt

并使用ls -1(不带r)给你

rrr1.txt
rrr2.txt
rrr3.txt

所以你的脚本将如下所示:

#!/bin/bash

ls -d -1 $PWD/rrr* > /tmp/memo.txt

关于linux - 为什么在shell脚本中使用ls重定向只写入一个文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38874080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com