gpt4 book ai didi

linux - 将带有通配符 (*) 的文件复制到 bash 脚本中的文件夹 - 为什么它不起作用?

转载 作者:IT王子 更新时间:2023-10-29 00:23:38 27 4
gpt4 key购买 nike

我正在编写一个创建文件夹并将文件复制到该文件夹​​的 bash 脚本。它可以从命令行运行,但不能从我的脚本运行。这里有什么问题?

#! /bin/sh
DIR_NAME=files

ROOT=..
FOOD_DIR=food
FRUITS_DIR=fruits

rm -rf $DIR_NAME
mkdir $DIR_NAME
chmod 755 $DIR_NAME

cp $ROOT/$FOOD_DIR/"*" $DIR_NAME/

我得到:

cp: cannot stat `../food/fruits/*': No such file or directory

最佳答案

你完全倒过来了——除了 * 字符之外的所有内容都应该用双引号引起来:

#!/bin/sh
dir_name=files

root=..
food_dir=food
fruits_dir=fruits

rm -rf "$dir_name"
mkdir "$dir_name"
chmod 755 "$dir_name"

cp "$root/$food_dir/"* "$dir_name/"

此外,作为最佳实践/惯例,非环境变量名称应小写,以避免与环境变量和内置函数发生名称冲突。

关于linux - 将带有通配符 (*) 的文件复制到 bash 脚本中的文件夹 - 为什么它不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21924351/

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