【问题标题】:rm -r command not working inside of shell in macos catalinarm -r 命令在 macos catalina 的 shell 内不起作用
【发布时间】:2021-04-21 14:11:21
【问题描述】:

我是 shell 脚本的新手。我在 mac 上编写了基本的 simple.sh 文件。我将我的 .sh 文件放到 /usr/local/bin 目录中,并将 sh 文件添加到 chrometab 以便每分钟运行一次。我的 sh 文件在独立终端屏幕上运行良好,但我无法在 crometab 上删除我想要的文件夹。请你帮助我好吗?我的问题是什么?我尝试 crontab -e, sudo crontab -e 但我无法删除我想要的文件夹。

操作系统:macOS Catalina 10.15.7

#! /bin/bash

downloadsDirectoryPath="/Users/Odin/Downloads/"
sampleFolderPath=$downloadsDirectoryPath"sampleFolder"
logFilePath=$downloadsDirectoryPath"log.txt"

sudo rm -rf $sampleFolderPath # this row not works, why???
echo "this row absolutely works" >> $logFilePath

【问题讨论】:

  • 在您的问题中添加确切的错误消息(无评论)。
  • @Chakra 无需进行这些更改。变量设置的内容很清楚。
  • 如果你先ls -l /Users/zed/Downloads/sampleFolder 然后rm -fr /Users/zed/Downloads/sampleFolder 会发生什么? (从命令行!)
  • 您可能遇到了 TCC(透明同意和控制)限制,需要授予 cron 的完整磁盘访问权限(请参阅 this Ask Different Q&A)。
  • @zkoza 我在终端屏幕上写了这个命令ls -l /Users/zed/Downloads/sampleFolder 结果是 ' 总计 197728 -rw-r--r--@ 1 zed 员工 95277923 Jan 14 22:47 VSCode-darwin。拉链'

标签: bash shell macos-catalina rm


【解决方案1】:

我通过允许对 cron 和 crontab 的完整磁盘访问权限解决了这个问题。感谢@GordonDavisson 的帮助

【讨论】:

    【解决方案2】:

    检查您是否有权删除该文件夹。

    您可能可以尝试在这样的命令之前添加sudo

    sudo rm -rf $sampleFolderPath

    否则,您可以使用 chmod 755 -R foldername 设置文件夹权限

    【讨论】:

    • 嗨,我试过你说的 'sudo rm -rf $sampleFolderPath' 但在我的本地机器上不起作用
    • 这很不寻常。检查脚本是否正在调用您要删除的文件夹的absolute path,像这样\etc\bin\somethingspecific 可能是它调用了相对路径并且无法找到它。我强烈建议您在将其放入脚本之前输入终端并对其进行测试!
    猜你喜欢
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    相关资源
    最近更新 更多