标签: bash

非 sudo 用户提示消息“rm:删除写保护的常规空文件”而不是权限被拒绝

我向 linux 服务器添加了一个额外的磁盘。

我将以下行添加到 fstab:

UUID=e277f402-bbac-4830-bc1d-5a849ffe7f9c /disk1          ext4    defaults 0 0
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个挂载点 /disk1 并挂载了它

 sudo mkdir /disk1
 sudo mount /disk1
Run Code Online (Sandbox Code Playgroud)

然后我以用户“hari”创建了一个空文件touch1.txt,其权限如下

sudo touch test1.txt

-rw-rw-r-- 1 hari hari     0 Sep 12 18:23 test1.txt
Run Code Online (Sandbox Code Playgroud)

现在,当我以另一个用户身份登录并删除 test1.txt 文件时,它实际上会询问我然后拒绝我,而不是说“权限被拒绝”。为什么呢?我怎样才能让它表现得像“正常”

hari2@UBUNTU01:/disk1$ rm test2.txt
rm: remove write-protected regular empty file ‘test2.txt’? y
rm: cannot remove ‘test2.txt’: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

linux unix bash command-line permissions

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

为什么 Bash 在某些情况下在终端中报告“未找到命令”,而在其他情况下没有?

通常,但并非总是如此,当我在计算机上启动终端并|在命令中使用管道 ( ) 时,pbpaste | wc例如,bash 给出-bash:  wc: command not found. (双空格不是错字)。

过了一会儿,我找到了一个解决方案:我删除了管道 ( pbpaste |wc)后面的空间,一切正常。但是当我用空格运行管道时,一切正常,bash 发现该命令完全有效,即使我几分钟前输入完全相同的命令时,它也根本不喜欢该命令。

这是它的屏幕截图:

截屏

我有两个非常相似的问题:

  • 是什么让 bash 以不同的方式对待这两行,即使它们是相同的?我不知道为什么会发生这种情况。
  • 我怎么能解决这个问题?

mac bsd bash command-line pipe

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

如何从最小到最大列出所有文件

所以我知道如何通过键入 ls -lhS 来从最大到最小列出当前目录中的所有文件。我只需要通过将最小的文件放在顶部而最大的文件放在相反的方向上读取此列表。谢谢!

unix bash

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

file 命令仅打印文件的格式

通常 linux 中的 file 命令提供文件的真实文件类型,而不管是否提到扩展名。

例如:

# file cntlm-0.92.3-1.x86_64.rpm
cntlm-0.92.3-1.x86_64.rpm: RPM v3.0 bin i386/x86_64 cntlm-0.92.3-1

# file zip-pack
zip-pack: Zip archive data, at least v2.0 to extract
Run Code Online (Sandbox Code Playgroud)

这给出了文件格式的详细描述,但我只需要格式(如果它是 zip,它应该只打印 zip)

如何做到这一点?

linux bash shell

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

为什么和 curl 然后是 sudo apt-get?

要在 Linux 上安装节点,根据文档,我必须执行以下操作:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
Run Code Online (Sandbox Code Playgroud)

我得到第二个陈述,但不是第一个。

curl会下载内容吧?然后通过管道将其传递给新命令?哪个做什么?我知道 -E 会保留环境变量,但是有什么作用bash -呢?

为什么我需要这样做,然后再做apt-get?不应该apt-get给我最新版本吗?或者这总是这样做的方式apt-get吗?

linux sudo bash apt-get

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

ZIP:名称以“zi”开头的临时二进制文件是什么?

当我在给定目录中压缩一个子目录时,两个二进制文件出现在这个位置,它们被调用zietrLSlziwvPwKmzip命令结束时消失。在另一个目录中,同样的事情发生了,但只有一个名为zi9Rt6a4.

  • 为什么 zip 需要这些二进制文件?
  • 他们的名字zi后面是随机字符还是他们的名字有什么特殊含义?

我使用了命令

zip -r mydir.zip mydir
Run Code Online (Sandbox Code Playgroud)

对于这两种情况。如果需要,我在MAC OS X 10.11.3

linux mac zip bash binary-files

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

如何从 macOS 命令行创建用户

我想知道如何从 macOS 命令行创建用户帐户。

如果我尝试使用众所周知的dscl . -create /Users/blah...它不起作用。

此外,如果您键入dscl输出就像

Entering interactive mode...
 >
Run Code Online (Sandbox Code Playgroud)

我也仍在试图弄清楚-auth-authonly部分。

terminal bash command-line macos

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

echo "" > /dev/null 有什么作用?

有人提到

echo "" > /dev/null 
Run Code Online (Sandbox Code Playgroud)

作为对我的命令,我应该运行。然而,我太紧张了,不敢尝试,因为网上有人提到它似乎“相对无害……”

这个命令会做什么?我正在考虑在 VM 中运行它,但我没有设置,如果它什么都不做,我不想浪费时间。我也不想在我的系统上运行它,以防万一它很危险。

它有什么作用?

bash

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

扩大sudo的范围?

可以sudo在单个命令上使用超级用户权限运行它:

sudo echo "hi"
Run Code Online (Sandbox Code Playgroud)

但是当我使用带有命令的管道时:

sudo echo "hi" > /a.txt
Run Code Online (Sandbox Code Playgroud)

超级用户权限未扩展到管道 ( > /a.txt) 部分,并且我收到拒绝权限的错误:

bash: /a.txt: 权限被拒绝

我的问题是:

是否有一种语法可以将sudo上面的范围扩展到管道部分?

linux sudo bash

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

为什么我不能创建指向与该目录相同级别的目录的符号链接?

我有一个名为Foo. 我想要一个符号链接,与它处于同一级别,称为foo.

ln -s Foo foo创建符号链接 Foo回指向自身。

$ mkdir lntmp && cd lntmp
$ mkdir Foo
$ touch Foo/file
$ ln -s Foo foo
$ tree
.
??? Foo
    ??? Foo -> Foo
    ??? file

1 directory, 2 files
Run Code Online (Sandbox Code Playgroud)

我想要实现的是

$ tree
.
??? foo -> Foo
??? Foo
    ??? file
Run Code Online (Sandbox Code Playgroud)

linux bash symbolic-link macos

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

标签 统计

bash ×10

linux ×6

command-line ×3

mac ×2

macos ×2

sudo ×2

unix ×2

apt-get ×1

binary-files ×1

bsd ×1

permissions ×1

pipe ×1

shell ×1

symbolic-link ×1

terminal ×1

zip ×1