Linux mkdir、查找和 mv
Linux mkdir, find and mv
伙计们,我必须在 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.
你能帮我找到解决这个问题的方法吗?
我不太确定你想要达到什么目的。但是你的脚本中有些东西没有意义。
- 你需要 while 循环做什么?创建文件夹并移动所有脚本后,再 运行 就没有意义了。
- 为什么要读两次目录名?您可以只读取一次,将其存储在 $name 中并使用它直到脚本结束。
- 您不需要查找
*.c
将 select 当前目录中所有以 .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 中编写这个脚本。我必须创建一个目录并查看它是否已经存在,然后我必须找到所有以“.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.
你能帮我找到解决这个问题的方法吗?
我不太确定你想要达到什么目的。但是你的脚本中有些东西没有意义。
- 你需要 while 循环做什么?创建文件夹并移动所有脚本后,再 运行 就没有意义了。
- 为什么要读两次目录名?您可以只读取一次,将其存储在 $name 中并使用它直到脚本结束。
- 您不需要查找
*.c
将 select 当前目录中所有以.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"