Questions tagged «null»

4
重定向到/ dev / null
我正在阅读一个示例bash shell脚本: #!/bin/bash # This script makes a backup of my home directory. cd /home # This creates the archive tar cf /var/tmp/home_franky.tar franky > /dev/null 2>&1 # First remove the old bzip2 file. Redirect errors because this generates some if the archive # does not exist. Then create a …
144 bash-script  null 

9
为什么/ dev / null是文件?为什么不将其功能实现为简单程序?
我试图理解Linux上特殊文件的概念。但是,据/dev我所知,当可以用C中的几行代码实现其功能时,在其中包含特殊文件似乎很愚蠢。 此外,您可以以几乎相同的方式使用它,即,通过管道连接到,null而不是重定向到/dev/null。将其作为文件有特定的原因吗?使其不成为文件会导致许多其他问题,例如太多程序正在访问同一文件吗?

1
如何在Bash中使用空字节?
我读过,由于Bash中的文件路径可以包含除空字节(零值字节,$'\0')之外的任何字符,因此最好使用空字节作为分隔符。例如,如果的输出find将发送到另一个程序,则建议使用该-print0选项(对于find具有该选项的版本)。 但是,尽管类似的方法可以很好地工作(打印用换行符分隔的文件路径,请放心,这只是一个演示,我实际上并不是在真实的脚本中这样做): find -print0 \ | while IFS= read -r -d $'\0' ; do echo "$REPLY" ; done 这样的事情就不会工作: for file in * ; do echo -n "$file"$'\0' ; done \ | while IFS= read -r -d $'\0' ; do echo "$REPLY" ; done 当我只尝试for-loop部分时,我发现它只是将所有文件名打印在一起,而中间没有空字节。 为什么是这样?这是怎么回事?
33 bash  null 

1
为什么不从/ dev / zero计数读取为IO_RBYTES?
我正在使用以下命令清空某些Linux 4.x OS上的硬盘驱动器: sudo sh -c 'pv -pterb /dev/zero > /dev/sda' 然后我打开了另一个tty,开始sudo htop并注意到了这一点: PID USER PRI NI CPU% RES SHR IO_RBYTES IO_WBYTES S TIME+ Command 4598 root 20 0 15.5 1820 1596 4096 17223823 D 1:14.11 pv -pterb /dev/zero 的值IO_WBYTES似乎很正常,但IO_RBYTES仍为4 KiB,并且从未更改。 例如,我还运行了其他一些程序 dd if=/dev/zero of=/dev/zero cat /dev/zero > /dev/zero 并惊讶地发现没有一个产生大量IO_RBYTES或大量的细菌IO_WBYTES。 …
25 linux  devices  io  null 

3
将文件转换为/ dev / null会破坏dev / null
如果我这样做:touch file; mv file /dev/null作为根,/dev/null消失。 ls -lad /dev/null导致没有这样的文件或目录。这样会破坏/dev/null像SSH 这样依赖的应用程序,并且可以通过这样做来解决mknod /dev/null c 1 3; chmod 666 /dev/null。为什么将常规文件移动到该特殊文件会导致消失/dev/null? 澄清一下,这是出于测试目的,我了解该mv命令的工作原理。我很好奇的是为什么ls -la /dev/null在用常规文件替换之前会显示预期的输出,但是之后却显示/dev/null不存在,即使据称是通过原始mv命令创建的,并且file命令显示了ASCII文本。我认为这必须是ls命令行为与devfs非特殊文件替换字符/特殊文件时的组合。这是在Mac OS X上,其行为可能在其他OS上有所不同。
25 osx  devices  null 

2
当输出文件为/ dev / null时,为什么tar似乎会跳过文件内容?
我有一个包含超过400 GiB数据的目录。我想检查所有的文件都没有错误被读取,所以一个简单的方法,我认为是tar成/dev/null。但是相反,我看到以下行为: $ time tar cf /dev/null . real 0m4.387s user 0m3.462s sys 0m0.185s $ time tar cf - . > /dev/null real 0m3.130s user 0m3.091s sys 0m0.035s $ time tar cf - . | cat > /dev/null ^C real 10m32.985s user 0m1.942s sys 0m33.764s 在运行了很长时间之后,上面的第三个命令被Ctrl+ 强制停止C。此外,当前两个命令正在工作时,包含该存储设备的活动指示器.几乎始终处于空闲状态。使用第三个命令,指示灯会持续亮起,这意味着非常忙碌。 如此看来,当tar能够发现其输出文件为时/dev/null,即当/dev/null直接打开以具有tar写入的文件句柄时,文件主体就会被跳过。(添加v选项tar的确会打印tar红色目录中的所有文件。) 所以我想知道,为什么会这样呢?是某种优化吗?如果是,那么为什么还要tar针对这种特殊情况进行如此可疑的优化呢? 我在Linux …
21 tar  null 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.