Bash脚本无法移动文件

埃文

我正在尝试编写一个将cron在一个特定目录中作为作业运行的“管理员”脚本应该创建一个名称为创建日期的存档文件夹,然后查找并将某种类型的所有文件移动到该新文件夹中。

这是我的测试代码:

#!/bin/bash

today=$(date +'%m:%d:%Y')
target="Archived-$today"
mkdir -p $target
find . -type f -name "*.zip" -exec mv -i {} /$target \;

它设法正确创建该文件夹,但是无法将找到的文件移动到该文件夹​​中。我只是做一个小测试,而脚本和文件都是由同一用户创建的。如果我将其添加sudo到开头,它将尝试移动文件,但是发生的是,它仅从当前目录中删除了文件,而没有将它们放置在新创建的目录中。

我不尝试移动.zip文件。只是一个例子。

我尝试过chmod 777同时使用文件和文件夹。同样的事情发生。

我正在运行ubuntu 14.04 LTS。

如果有更好的方法可以做到这一点,请告诉我。

任何朝着正确方向的指针将不胜感激。

编辑

现在可以了。

我将find声明更新为:

find . -maxdepth 1 -type f -name "*.zip" -exec mv -t "$target/" {} \;
尤努斯

在当前目录中查找文件,而不是子目录:

find . -maxdepth 1  -type f -name '*.zip'  -exec mv -t "$target/" {} \;

排除方法:

find . -type f -not -path "$target/*"  -name '*.zip'  -exec mv -t "$target/" {} \;

请注意,这将仅排除今天的存档,而您将拥有其他存档,我建议第一个命令,或者在主目录之外创建存档目录!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Bash 脚本无法识别文件

来自分类Dev

bash脚本无法处理文件名中的空格

来自分类Dev

Bash脚本无法运行

来自分类Dev

Bash脚本无法用作cronjob

来自分类Dev

Bash脚本无法从crontab正常运行

来自分类Dev

Bash脚本无法找到Perl模块

来自分类Dev

bash脚本无法识别Ruby宝石

来自分类Dev

bash脚本无法正常工作

来自分类Dev

Bash脚本无法正常工作

来自分类Dev

OSX bash脚本无法从cron运行

来自分类Dev

Bash 脚本无法在 Shell 中运行

来自分类Dev

PHP脚本无法正确写入文件

来自分类Dev

Shell脚本无法awk创建的文件

来自分类Dev

Systemd服务脚本无法写入文件

来自分类Dev

Bash脚本无法执行bash脚本

来自分类Dev

bash脚本无法正确比较带有[和]的文件名

来自分类Dev

如果不是,则嵌套bash会导致脚本无法按预期工作以分隔URL和文件

来自分类Dev

PHP脚本无法运行bash脚本。sh:权限被拒绝

来自分类Dev

Bash脚本无法正确调用其他脚本

来自分类Dev

cronjob中的脚本无法使用:“无法打开输入文件”

来自分类Dev

Bash脚本无法执行Go命令

来自分类Dev

Bash脚本无法从PATH执行命令

来自分类Dev

Bash脚本无法向mysql发送指令

来自分类Dev

bash脚本无法读取第一行

来自分类Dev

使用“ $ @”时脚本无法识别Bash“ -n”参数

来自分类Dev

SFTP的期望脚本无法在bash中运行

来自分类Dev

通过SSH远程触发的Bash脚本无法正常工作

来自分类Dev

Bash脚本无法从PATH执行命令

来自分类Dev

bash脚本无法读取bashrc中的别名