因此,我需要编写一个 bash 脚本,将所有文件复制到指定目录,但是我需要通过将/
字符替换为__
.
例如,如果文件zad1.sh
在目录中/home/123456/
,则需要将文件重命名为__home__123456__zad1.sh
关于如何做到这一点的任何想法?
因此,我需要编写一个 bash 脚本,将所有文件复制到指定目录,但是我需要通过将/
字符替换为__
.
例如,如果文件zad1.sh
在目录中/home/123456/
,则需要将文件重命名为__home__123456__zad1.sh
关于如何做到这一点的任何想法?
因此,我正在创建一个脚本,该脚本递归地计算当前目录中所有文件的大小以及子目录中所有文件的大小:
#!bin/bash
Count () {
size=0
items=`ls "${1}/"`
for item in $items
do
if [ ! -d $item ]
then
cursize=`ls -l $item | awk '{ print $6 }'`
size=$[$size+$cursize]
else
echo "$1/$item"
Count $1/$item
size=$[$size+$?]
fi
done
echo "Done"
return $size
}
Count ~
echo "$?"
但是,当我运行脚本时,我得到以下输出:
/home/161161/backup
Done
/home/161161/dir
ls: xoe1.txt: No such file or directory
script.sh: line 11: 28+: syntax error: operand expected (error token is "+")
1
xoe1.txt 是 dir 目录中的一个文件,当我在目录上执行 ls -l 时,我不知道为什么会出现这个问题:
ls -l dir
total 4
-rw-r--r-- 1 161161 domain users 23 Jun 2 22:55 test1.txt
-rw-r--r-- 1 161161 domain users 0 Jun 2 15:27 test2.txt
-rw-r--r-- 1 161161 domain users 0 Jun 2 15:27 test3.txt
-rw-r--r-- 1 161161 domain users 0 Jun 2 22:42 xoe1.txt <--
-rw-r--r-- 1 161161 domain users 0 Jun 2 22:42 xor1.txt
[161161@os ~]$
它表明文件确实存在。
有任何想法吗?