【问题标题】:how to script folder deletion on MAC如何在 MAC 上编写文件夹删除脚本
【发布时间】:2013-11-08 16:53:07
【问题描述】:

我认为这应该是直截了当的,但要么我今天过得很糟糕,要么我根本找不到我要找的东西。

请帮忙。

我需要在 MAC 终端中运行以下命令才能删除以下条目:

sudo rm -Rf /Applications/Network\ Connect.app
sudo rm -Rf /Library/Frameworks/net.juniper.DSApplicationServices.framework
sudo rm -Rf /Library/Frameworks/net.juniper.DSCoreServices.framework
sudo rm -Rf /Library/Frameworks/net.juniper.DSNetworkDiagnostics.framework
sudo rm -Rf /Library/Internet\ Plug-ins/net.juniper.DSSafariExtensions.plugin
sudo rm -Rf /Library/Widgets/Network\ Connect.wdgt
sudo rm -Rf /usr/local/juniper
sudo rm -Rf /private/var/db/receipts/net.juniper.NetworkConnect.bom
sudo rm -Rf /private/var/db/receipts/net.juniper.NetworkConnect.plist
sudo rm -Rf ~/Library/Preferences/ncproxyd.plist

它可以完成它的工作,但它并不完全优雅。我也在考虑将这个提供给我的同事,所以我想为 MAC 创建某种 .bat 文件。

我确实花了大约半天的时间试图弄清楚,但它不起作用:(

有人可以帮我创建一个 .sh 文件或 bash 文件来执行上述命令吗?

【问题讨论】:

标签: macos bash


【解决方案1】:

创建一个脚本文件,假设它被称为delete.sh并添加以下行:-

#!/bin/bash
rm -Rf /Applications/Network\ Connect.app
rm -Rf /Library/Frameworks/net.juniper.DSApplicationServices.framework
rm -Rf /Library/Frameworks/net.juniper.DSCoreServices.framework
rm -Rf /Library/Frameworks/net.juniper.DSNetworkDiagnostics.framework
rm -Rf /Library/Internet\ Plug-ins/net.juniper.DSSafariExtensions.plugin
rm -Rf /Library/Widgets/Network\ Connect.wdgt
rm -Rf /usr/local/juniper
rm -Rf /private/var/db/receipts/net.juniper.NetworkConnect.bom
rm -Rf /private/var/db/receipts/net.juniper.NetworkConnect.plist
rm -Rf ~/Library/Preferences/ncproxyd.plist

然后,在终端中,您需要为脚本设置可执行标志:-

chmod +x deletion.sh

请注意,当脚本复制到另一台机器或网络驱动器时,可执行标志可能会被删除,因此您可能必须在复制后这样做。

最后,你可以用 sudo 调用脚本

sudo ./deletion.sh

【讨论】:

    【解决方案2】:

    如果你想创建一个批处理文件,你有一个。该命令列表您的 shell 脚本。要执行它,只需将 hem 保存到一个文件中,将 bash 命令添加到该文件名的前面:

    $ bash commands_I_want_to_execute.txt
    

    如果你想变得花哨,你可以在顶部放一个shebang,并使用chmod设置执行位。这将使您的脚本成为一个真正的 shell 脚本。

    但是,为了找到您的 shell 脚本,您需要为其添加路径前缀,或者将其放在包含在您的 PATH 中的目录中。在这里,我将只是前缀:

    $ chmod a+x commands_I_want_to_execute.txt  # Suffix doesn't really matter. It's executable
    $ ./commands_I_want_to_execute.txt          # Now this will be executed
    

    如果你真的被后缀困扰,用mv命令改变它:

    $ mv commands_I_want_to_execute.txt commands_I_want_to_execute.sh
    

    注意:如果您使用文本编辑创建文件,请将其创建为纯文本文件而不是 RTF 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 2013-04-09
      • 2012-01-23
      • 1970-01-01
      • 2016-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多