一次移动一批文件
Move a batch of files one at a time
正在编写 linux 脚本以将文件从一个文件夹移动到另一个文件夹。但是它需要首先显示文件的属性,例如大小、创建日期、名称等,然后询问用户是否要复制它。
我可以批量复制,但不确定如何查看一个文件的属性然后询问用户是否要复制它,然后移动到文件夹中的下一个文件。
如有任何帮助,我们将不胜感激。
我会复制我已经完成的代码,但是没有一个与问题相关,到目前为止我已经让它处理两个文件夹参数(源和目标)并创建一个目标文件夹,如果指定的一个不存在。
总结一下:
程序将文件从一个文件夹逐个复制到另一个文件夹
需要显示每个文件的属性
然后询问用户是否he/she想要复制文件
复制文件,然后移动到下一个文件(猜测文件夹中的文件数量可以使用内置的 bash 参数计算)
谢谢!
康纳
Dialog命令是你的朋友。不要尝试 "get" 文件属性,只需使用 ls -al '$filename'
以下脚本将起作用:
dir=
newdir=
for file in $dir/*
do
filesize=$(stat -f%z $file) # stat command finds size of file in bytes
filename=$(basename $file)
echo "Name of file: $filename"
echo "File size: $filesize bytes"
ls -l $file #shows permisions, parent directory, last modification date...
read -r -p "Would you like to copy file?:" answer
if [[ $answer =~ ^(yes|y| ) ]] # checks possible user entries
then
cp $file $newdir/$filename #copies file from original dir to new dir
else
echo "file not copied"
fi
done
对于读取用户输入的 read
命令,这里是从手册页中获取的描述:
-p prompt
Display prompt, without a trailing newline, before attempting
to read any input. The prompt is displayed only if input is coming from a
terminal.
-r
If this option is given, backslash does not act as an escape character.
The backslash is considered to be part of the line. In particular, a backslash-newline
pair may not be used as a line continuation.
脚本是 运行 这样的:
./script original new
其中 original
是要读取的目录,new
是您要将文件复制到的目录。
正在编写 linux 脚本以将文件从一个文件夹移动到另一个文件夹。但是它需要首先显示文件的属性,例如大小、创建日期、名称等,然后询问用户是否要复制它。
我可以批量复制,但不确定如何查看一个文件的属性然后询问用户是否要复制它,然后移动到文件夹中的下一个文件。
如有任何帮助,我们将不胜感激。
我会复制我已经完成的代码,但是没有一个与问题相关,到目前为止我已经让它处理两个文件夹参数(源和目标)并创建一个目标文件夹,如果指定的一个不存在。
总结一下:
程序将文件从一个文件夹逐个复制到另一个文件夹
需要显示每个文件的属性
然后询问用户是否he/she想要复制文件
复制文件,然后移动到下一个文件(猜测文件夹中的文件数量可以使用内置的 bash 参数计算)
谢谢!
康纳
Dialog命令是你的朋友。不要尝试 "get" 文件属性,只需使用 ls -al '$filename'
以下脚本将起作用:
dir=
newdir=
for file in $dir/*
do
filesize=$(stat -f%z $file) # stat command finds size of file in bytes
filename=$(basename $file)
echo "Name of file: $filename"
echo "File size: $filesize bytes"
ls -l $file #shows permisions, parent directory, last modification date...
read -r -p "Would you like to copy file?:" answer
if [[ $answer =~ ^(yes|y| ) ]] # checks possible user entries
then
cp $file $newdir/$filename #copies file from original dir to new dir
else
echo "file not copied"
fi
done
对于读取用户输入的 read
命令,这里是从手册页中获取的描述:
-p prompt
Display prompt, without a trailing newline, before attempting
to read any input. The prompt is displayed only if input is coming from a
terminal.
-r
If this option is given, backslash does not act as an escape character.
The backslash is considered to be part of the line. In particular, a backslash-newline
pair may not be used as a line continuation.
脚本是 运行 这样的:
./script original new
其中 original
是要读取的目录,new
是您要将文件复制到的目录。