我正在尝试tar在名为“my_directory”的目录中收集文件并使用以下命令删除原件:
tar -cvf files.tar my_directory --remove-files
Run Code Online (Sandbox Code Playgroud)
但是,它仅删除目录中的单个文件,而不删除目录本身(这是我在命令中指定的内容)。我在这里缺少什么?
编辑:
是的,我认为 'remove-files' 选项是相当直白的。虽然我也发现手册页在这一点上不清楚。(在 linux 中,我往往不会真正区分目录和文件,有时会忘记它们不是一回事)。看起来共识是它不会删除目录。
但是,我提出这个问题的主要提示点源于 tar 对绝对路径的处理。因为您必须指定要压缩的文件的相对路径,因此您必须更改到父目录以正确地对其进行 tar。正如我所见,在这种情况下,使用任何类型的后续“rm”命令都有潜在危险。因此,我希望通过让 tar 本身进行删除来简化事情。
例如,想象一个备份脚本,其中要备份的目录(即 tar)作为 shell 变量包含在内。如果该 shell 变量值输入错误,则结果可能是从您上次碰巧所在的任何目录中删除文件。
我想将这台 Windows 10 机器配置为从 IDLE 恢复时不要求输入密码,但在从 STANDBY 或 HIBERNATE 恢复时仍要求输入密码。
屏幕需要在 5 分钟后关闭,并且不要使用屏幕保护程序。
我能找到的唯一信息是完全禁用锁屏密码——这不是我想要的。只要不需要密码,锁定屏幕是否继续显示是相关的。
版本是 Windows 10 专业版。它还连接到 SBS2011 域。
对于由 2 台计算机和一台交换机组成的简单网络,默认网关设置应该设置为什么?基本上没有网关(即没有路由器,没有互联网,也没有进入交换机的其他连接)。
是否应该设置为:
其他注意事项:
我有一个 cron 作业调用一个运行良好的 bash 脚本,除了其中的一行假设删除目录中的所有罚款。这一行的结果始终是“没有这样的文件或目录”,即使我已经(多次)验证了该目录中存在文件。有问题的行很简单:
rm /dir1/dir2/dir3/*
Run Code Online (Sandbox Code Playgroud)
该脚本在终端中手动运行时工作正常,因此它必须与 cron 的运行方式有关。我试过给 'dir3' 和它里面的所有文件所有可能的权限,所以它不应该是一个权限问题。(目录和文件也归用户所有)。我试过在“crontab”中指定“SHELL=/bin/bash”。rm 命令没有设置粘滞位,也没有别名。
有趣的是,将 'rm' 命令更改为 'ls' 会产生相同的负面结果(除非您删除尾随的 '*',然后就可以了)。
我在这里缺少什么?