无法从bash脚本更改chmod

我做了一个脚本来复制一个图像到一个临时目录,将其转换为另一种格式,然后将其移动到最终目录。 但我不能让chmod命令工作,文件被复制到临时目录,但它的chmod卡在-rw ——-(文件的原始chmod)。

如果我在原始文件上应用777 chmod,复制的将获得-rwx ——而不是-rwxrwxrwx

复制和原始文件具有相同的用户。

TS=$(date +"%Y")/$(date +"%m")/$(date +"%d")/$(date +"%Hh%Ms%S") PATHTMP="/tmp/faxtiff" mkdir -p $PATHTMP chmod 777 $PATHTMP cp $FILE $PATHTMP chmod 777 $PATHTMP/$FILE convert $PATHTMP/$FILE -scale '50%x100%!' $PATHTMP/fax.jpg chmod 777 $PATHTMP/fax.jpg mkdir -p /home/argent/faxes-recus/$TS chmod 777 /home/argent/faxes-recus/$TS #rm $PATHTMP/$FILE mv $PATHTMP/*.jpg /home/argent/faxes-recus/$TS 

mdpc是正确的。 我不知道为什么有人低估了你的问题,但是…

如果root拥有这个文件,你应该可以(假设你有权访问)做一个sudo chmod... ,那应该可以。

但是,如果您不想让root拥有该文件,则需要执行sudo chown $USER <filename>以使文件由您login的用户拥有。

我没有尝试过你的脚本,但继续尝试以下,注意到两件事情:

1)不要四处张望你不应该的东西。 我不知道这个问题的背景,而且这个问题可能是坏的,非常糟糕的,或者是非常糟糕的。 但是,如果您正在创build此内容,并且隐式(或显式)授予了修改这些文件的权限,那么它不应该是一个问题。

2)我注意到一些情况,你应该不需要。 请记住,您始终可以执行ls -l来查看给定文件的所有权。

 TS=$(date +"%Y")/$(date +"%m")/$(date +"%d")/$(date +"%Hh%Ms%S") PATHTMP="/tmp/faxtiff" mkdir -p $PATHTMP #sudo chown -R $USER $PATHTMP chmod 777 $PATHTMP cp $FILE $PATHTMP sudo chown $PATHTMP/$FILE chmod 777 $PATHTMP/$FILE convert $PATHTMP/$FILE -scale '50%x100%!' $PATHTMP/fax.jpg #shouldn't need to chown here if the script is being run as the logged in user. chmod 777 $PATHTMP/fax.jpg mkdir -p /home/argent/faxes-recus/$TS #chown $USER /home/argent/faxes-recus/$TS chmod 777 /home/argent/faxes-recus/$TS #rm $PATHTMP/$FILE mv $PATHTMP/*.jpg /home/argent/faxes-recus/$TS 

如果您不是相关文件的所有者,则无法对该文件执行chmod操作。