gpt4 book ai didi

Linux mkdir、查找和 mv

转载 作者:太空宇宙 更新时间:2023-11-04 12:25:58 25 4
gpt4 key购买 nike

伙计们,我必须在 Linux 中编写这个脚本。我必须创建一个目录并查看它是否已经存在,然后我必须找到所有以“.c”结尾的文件并将它们移动到我创建的目录中。这是我目前所拥有的:

#!/bin/bash

while

echo "name of the directory you want to create "

read -p "$name"; do

if [ ! -d "$name" ]; then

{
echo "Directory doesn't exist. Create: "

read -p "$name"

mkdir -p Scripts/"$name"

}

else

echo "Directory exists"

fi

find ./ -name '*.c' | xargs mv -t "$name"

done

当我尝试执行它时,它不起作用。它不会创建一个新目录,它还说:

mv: failed to access '': No such file or directory.

你能帮我找到解决这个问题的方法吗?

最佳答案

我不太确定您要实现的目标。但是您的脚本中有些东西没有意义。

  1. 你需要 while 循环做什么?创建文件夹并移动所有脚本后,再次运行它就没有意义了。
  2. 为什么要读两次目录名?您可以只读取一次,将其存储在 $name 中并使用它直到脚本结束。
  3. You don't need find *.c 将选择当前目录中所有以.c结尾的文件。

综上所述,如果我理解正确的话,这是执行您所要求的脚本。

#! /bin/bash
echo -n "Enter the name of the directory you want to create: "
read name

if [ ! -d Scripts/"$name" ]; then
echo "Directory doesn't exist. Creating it."
mkdir -p Scripts/"$name"
else
echo "Directory exists"
fi

echo "Moving files"
mv *.c Scripts/"$name"

关于Linux mkdir、查找和 mv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44699931/

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