在我的 CMS 中,我注意到目录需要+x为用户设置可执行位 ( ) 才能打开它们。为什么读取目录需要执行权限,Linux 中的目录权限是如何工作的?
我有一个文件夹,里面有一些目录和一些文件(有些是隐藏的,以点开头)。
for d in *; do
echo $d
done
Run Code Online (Sandbox Code Playgroud)
将遍历所有文件和目录,但我只想遍历目录。我怎么做?
我想设置一个文件夹,以便在其中创建的任何内容(目录、文件)继承默认权限和组。
让我们称该组为“媒体”。而且,在目录中创建的文件夹/文件应该自动具有 g+rw。
我想要一个将当前工作目录带到变量的脚本。需要目录的部分是这样的dir = pwd。它只是打印pwd如何将当前工作目录放入变量中?
我有一个脚本,当我从命令行运行它时cron,它可以工作,但是当我用它来安排它时,我收到了找不到文件或命令的错误。我的问题是双重的:
当我使用 调度 cron 作业时crontab -e,它是否使用我的用户 ID 作为其权限的基础?或者它是否使用某种类型的 cron 用户 ID 及其相关权限?
启动 cron 作业时,工作目录是什么?它是我指定要运行的脚本的目录,还是其他目录?
这是我的 cron 工作:
15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh
Run Code Online (Sandbox Code Playgroud)
这是实际的脚本:
vIP_ADDR="`curl automation.whatismyip.com/n09230945.asp`"
echo "$vIP_ADDR"
sed "s/IPADDR/$vIP_ADDR/g" template.txt > emailmsg.txt
ssmtp XXXXX@gmail.com < emailmsg.txt
Run Code Online (Sandbox Code Playgroud)
以下是我在查看由mail产生的消息时得到的错误cron:
sed: can't read template.txt: No such file or directory
/home/xxxx/Documents/Scripts/email_ip_script.sh: line 15: ssmtp: command not found
Run Code Online (Sandbox Code Playgroud)
它找不到,template.txt但它与脚本位于同一目录中。它也不能运行ssmtp,但我可以作为我的用户。我缺少什么才能使其正常工作?
md5sum 程序不提供目录的校验和。我想为目录的整个内容(包括子目录中的文件)获取单个 MD5 校验和。也就是说,由所有文件组成的一个组合校验和。有没有办法做到这一点?
假设有一个图像存储目录,例如,./photos/john_doe,其中有多个子目录,许多特定文件驻留在其中(例如,*.jpg)。如何计算john_doe分支下这些文件的摘要大小?
我试过du -hs ./photos/john_doe/*/*.jpg,但这仅显示单个文件。此外,这仅跟踪john_doe目录的第一个嵌套级别,例如john_doe/june/,但会跳过john_doe/june/outrageous/。
那么,我如何遍历整个分支,总结某些文件的大小?
如果我有一个具有某些限制权限的根文件夹,比如说 600,如果子文件夹/文件有 777 权限,即使根文件夹有 600,每个人都可以读/写/执行子文件吗?