小编Chr*_*her的帖子

bash 可以读取文件/目录的“添加日期”吗?

在像您这样的程序中,stat您可以看到访问、修改和更改,但在 macOS 上的 Finder 中,有一个“添加日期”字段。我可以获取终端中显示的文件或目录的“添加日期”,例如stat可以显示修改日期吗?

osx bash stat

5
推荐指数
1
解决办法
1207
查看次数

无论光标位置如何,Ctrl + U 删除整行

我正在学习终端技巧。在教程中,这家伙说Ctrl+U删除从光标到行尾的所有内容。就我而言,它总是删除整行。我zsh在 macOS 上使用。

osx zsh terminal iterm2

5
推荐指数
1
解决办法
1093
查看次数

通过 GUI 应用程序更改用户密码

我正在制作一个 GUI 应用程序来管理 Linux 中的用户和组!

我已经完成了创建新用户的部分,但仍然坚持为新创建的用户提供新密码的部分。我的应用程序所做的只是通过 GUI 获取所需的输入(用户名、组列表和密码)并运行一个脚本,将此信息作为参数传递。假设我们有一个用户帐户 xyz。如果我想更改此帐户的密码,那么我只需运行以下命令:

passwd xyz
Run Code Online (Sandbox Code Playgroud)

这将要求输入新密码。现在我可以使用脚本创建一个新帐户,因为所有必需的信息都在命令行中传递。

useradd -m -G users -g "groups" -s /bin/bash "UserName"
Run Code Online (Sandbox Code Playgroud)

我可以通过 Qt 应用程序运行脚本并创建用户,但在 中passwd cmd,在另一行中要求输入。怎么处理呢?

linux gui passwd

4
推荐指数
2
解决办法
2903
查看次数

`find` 命令中的 `{\} {}` 是什么意思?

请详细解释这个命令。

我正在使用此命令查找 6 MB 以上的大文件,并将它们拆分为同一文件夹中的 5 MB 块。然后它会删除同一目录中的原始文件(大于 6MB)。

find . -size +6M -exec split -d -b 5M {\} {}-part \; | find . -size +6M -exec rm -rf {} \;
Run Code Online (Sandbox Code Playgroud)

我不知道命令的以下部分的目的:

{\} {}
Run Code Online (Sandbox Code Playgroud)

我的目标是开发一个脚本,用于每月将 Virtualmin 域备份到 Amazon S3 存储桶。

由于 Amazon S3 上的 PUT 限制为 5 GB,我必须将域备份 ( tar.gz)拆分为小于 5 GB 的大小。

command-line find split

4
推荐指数
1
解决办法
1202
查看次数

管道,以及如何在 bash 中使用它们

我在一些脚本中看到这样的命令:/bin/cat somefile | someprogram. 我想知道如何像 someprogram 一样读取整个管道。因此,当我运行时 /bin/cat something | myprogram.sh,myprogram.sh 有一个名为 mypipevar 的变量,它等于通过管道传输的任何内容 - 所有管道文本。如果这不清楚,请告诉我。我读过 read 可能不起作用,bash 可能不是正确的 shell。

bash pipe shell-script

2
推荐指数
1
解决办法
5673
查看次数

从特定目录的 ACL 中删除用户

CentOS 版本 5.10。

getfacl --omit-header Shared/
user::rws
user:foo:rw
group::rw
mask:rw
Run Code Online (Sandbox Code Playgroud)

我想user:foo:rw从该条目中删除。

setfacl -m user:foo:0只是删除权限。

getfacl --omit-header Shared/
user::rws
user:foo:---
group::rw
mask:rw
Run Code Online (Sandbox Code Playgroud)

这可能吗?

centos setfacl

2
推荐指数
1
解决办法
1万
查看次数

sed 查找并替换字符串

我在多个文件中有这些行:

<update>2013-02-10</update>
<version>1.15</version>
Run Code Online (Sandbox Code Playgroud)

我想用(新日期和版本)替换它们:

<update>2019-06-30</update>
<version>1.28</version>
Run Code Online (Sandbox Code Playgroud)

如何使用 sed 或 awk 对多个文件执行此操作?(我使用的是 Mac 操作系统)

编辑1:行<update> and <version>不是一个接着一个,我想替换它们的每一个出现。

编辑2:日期有所不同,但字符串<update>没有改变,所以我不能使用查找“2013-02-10”并替换为“新日期”

osx sed awk

2
推荐指数
1
解决办法
1100
查看次数

从 plist 文件中获取信息

我需要我的脚本来从 macOS 获取信息。该信息位于一个plist文件~/Library/Preferences/com.apple.SystemProfiler.plist

二进制内容如下。

bplist00?_NSWindow Frame SystemProfileYCPU Names_344 284 751 520 0 0 1440 877 ?]HV2J-en-GB_GB_4MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports) ,6VYg

我只想将此处以粗体和斜体显示的文本文件放入括号之间。我尝试了在互联网上找到的不同方法,但没有运气。

osx bash

2
推荐指数
1
解决办法
1026
查看次数

为什么 rm 需要 -r 用于空文件夹?

一直困扰着我的一件事:

touch a
rm a
Run Code Online (Sandbox Code Playgroud)

好的,它按预期工作

mkdir a
rm a
Run Code Online (Sandbox Code Playgroud)

需要 -r 才能工作;但我不明白什么是递归?如果文件夹为空,则没有任何递归。我希望 rm a 尝试删除 a,如果它不是空的并且 rm -r 递归地删除 a 的内容,则会失败。

为什么会这样?

编辑:这个问题已被标记为一个完全不相关的问题的重复。我的问题可以总结为:为什么我需要一个递归标志来执行非递归操作: mkdir a, rm -ra 对此没有任何递归。这与另一个问题无关,即为什么默认情况下 rm 不是递归的。

linux bash history

2
推荐指数
1
解决办法
2564
查看次数

隐藏脚本命令输出

我正在构建一个 shell 脚本来自动配置具有最佳设置的特定计算机。我想隐藏这个脚本的所有输出,除了 echo 输出。是否可以?

io-redirection shell-script

1
推荐指数
1
解决办法
1731
查看次数

find 命令似乎没有排除指定的目录

find命令应该允许排除目录。我尝试了以下命令。

find -name "clang" -not -path "./mnt/*
Run Code Online (Sandbox Code Playgroud)

它仍在搜索目录。我错过了什么?

find -not -path 的输出

find

-3
推荐指数
1
解决办法
545
查看次数

标签 统计

bash ×4

osx ×4

find ×2

linux ×2

shell-script ×2

awk ×1

centos ×1

command-line ×1

gui ×1

history ×1

io-redirection ×1

iterm2 ×1

passwd ×1

pipe ×1

sed ×1

setfacl ×1

split ×1

stat ×1

terminal ×1

zsh ×1