gpt4 book ai didi

linux - 为什么在将 ls 传输到 mkdir 时会出现奇怪的类似时间戳的包含?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:07:25 24 4
gpt4 key购买 nike

我的电脑运行的是 Scientific Linux 6.5 版 (Carbon)。我想在

中创建一组新目录
/newset/

与中的另一组现有子目录同名

/oldset/

这里是/oldset/中的子目录

$ ls /oldset/
A/
B/
C/

我试过了

$ cd /newset/
$ ls /oldset/ | xargs mkdir

生成具有这些名称的目录

$ ls /newset/
?[0m?[38;5;27mA?[0m/
?[38;5;27mB?[0m/
?[38;5;27mC?[0m/
?[m/

不是我所期待的。我还尝试使用 mkdir 通过 ls 输出进​​行 for 循环并得到相同的结果。谁能解释为什么会出现奇怪的结果?

最佳答案

Don't use ls首先;使用数组:

names=( /oldset/* )
cd /newset
mkdir "${names[@]#/oldset/}"

或使用循环,尽管这需要多次调用 mkdir 而不是一次。

for d in /oldset/*/; do
mkdir /newset/"${d#/oldset}"
done

关于linux - 为什么在将 ls 传输到 mkdir 时会出现奇怪的类似时间戳的包含?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36667574/

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