如果我创建一个文件,然后将其权限更改为444
(只读),如何rm
删除它?
如果我这样做:
echo test > test.txt
chmod 444 test.txt
rm test.txt
Run Code Online (Sandbox Code Playgroud)
...rm
会问我是否要删除写保护的文件test.txt
。我原以为rm
不能删除这样的文件,我必须先做一个chmod +w test.txt
。如果我这样做rm -f test.txt
,然后rm
将删除文件,甚至没有要求,即使它是只读的。
任何人都可以澄清吗?我正在使用 Ubuntu 12.04/bash。
我对此很偏执,但希望这是一个简单的问题:
有什么区别吗
cat file1 | egrep -oP "[Mm]y string" > /home/user/file.txt
Run Code Online (Sandbox Code Playgroud)
和
cat file1|egrep -oP "[Mm]y string">/home/user/file.txt
Run Code Online (Sandbox Code Playgroud)
即,是否有空格填充管道 (|) 和重定向 (>) 字符?我真的很怀疑那里有空格,当我不想要时,空格会以某种方式结束在输出文件中。任何人都可以澄清吗?(如果重要,请使用 Ubuntu 12/bash。)
我想在我的 Ubuntu 系统上设置软件 RAID-1,并找到了 /etc/raidtab 的示例:
raiddev /dev/md0
raid-level 1
nr-raid-disks 2
nr-spare-disks 0
persistent-superblock 1
device /dev/sdb1
raid-disk 0
device /dev/sdc1
raid-disk 1
Run Code Online (Sandbox Code Playgroud)
不过,我希望 raid 设备的路径是 /raid。只用就可以吗
raiddev /raid
Run Code Online (Sandbox Code Playgroud)
...或者它真的必须命名为 /dev/md0 吗?
我有一个 Windows 命令行程序,我通过 wine 在 Ubuntu 中的 Bash 脚本中运行。Bash 脚本基本上是这样的:
wine myprogram.exe | while read line
do
# Process line
done
Run Code Online (Sandbox Code Playgroud)
现在,由于我已经编写了 myprogram.exe,我知道它只是尽可能快地输出数据。谁能向我解释一下 Bash while 循环如何处理数据,以防我的程序比 while 循环处理得更快?如果内核调度程序产生太多数据,内核调度程序会让 myprogram.exe 休眠吗?任何人?目前我倾向于它是黑魔法。
我想在 Emacs 中做一件非常简单的事情。我想设置它以便当我按下 TAB 键时,它插入两个空格。只是这个。这就是我要问的。我已经尝试这样做了几年了,但没有办法做到。在每种文件类型中,它都会以不同的方式爆炸。HTML文件?在获得四个空格或跳到上一行缩进之间的随机选择。Python文件?只有四个空格,我会忽略您的任何设置。根据之前工作时的月相,它似乎也会随机停止工作。
在我的 .emacs 中:
(setq indent-tabs-mode nil)
(setq tab-width 2)
Run Code Online (Sandbox Code Playgroud)
这应该有效,对吧?不不不。似乎 emacs 对每个扩展都有一个神奇的“文件模式”,它完全覆盖了我告诉它的内容。那么我是否必须找到这个神奇的仙女配置并为每种文件类型覆盖它?我该怎么做才能让这个简单的事情发挥作用。呸。
我正在编写一个 bash 脚本来在包含许多(100,000+)个子目录的目录上做一些工作。对于可以传递给 for 循环的参数数量是否有预定义的限制,如下所示?
for dir in $(find . -type d)
do
# My code
done
Run Code Online (Sandbox Code Playgroud)
我担心如果 find 命令返回太多目录,脚本会出错。
shell ×2
bash ×1
command-line ×1
emacs ×1
files ×1
permissions ×1
pipe ×1
raid ×1
readonly ×1
rm ×1
scheduling ×1
shell-script ×1