我目前正在编写一本练习册,我必须创建一个shell脚本,它将从任何目录中找到一个文件并将其移动。
虽然我遇到困难,因为文件可能在任何目录中(所以我没有找到它的路径)。我使用了-print标志的find选项,使用mv命令移动它的下一步是什么?
我的代码到目前为止读入一个变量,检测是否已输入文件,文件或目录是否存在,或者是否存在。
上面提到的下一个阶段是找到该文件,然后将其移动到“测试”文件中。
如果有人有任何建议,我们将不胜感激。
#!/bin/bash
bin="deleted"
if [ ! -e bin ] ; then
mkdir $bin
fi
file=$1
#error to display that no file has been entered
if [[ ! $file ]]; then
echo "no file has been entered"
fi
#file does not exist, display error message
if [[ ! -f $file ]]; then
echo "$file does not exsist!"
fi
#check to see if the input is a directory
if [[ -d $file ]]; then
echo "$file is a directory!"
if [[ -e $file ]]; then *** move to test folder
****This is where I am having the problems
答案 0 :(得分:3)
find / -type f -name FILENAME | xargs -I foobar echo mv foobar /tmp
(删除echo
以使命令实际工作..我把它放在那里只是为了避免意外移动文件只是为了尝试命令)
请注意,-I foobar
表示在mv foobar /tmp
中将foobar
字符串替换为找到的文件的完整路径。
例如,尝试:find / -type f -name FILENAME | xargs -I foobar foobar is a cool file