Questions tagged «files»

操纵文件:复制,重命名,搜索,分析,归档等。有关对文件中的文本进行操作的信息,请参见/ text-processing。有关“文件”文件管理器(以前为Nautilus)的问题,请参阅/ nautilus。

2
外行对“一切都是文件”的解释-与Windows有何不同?
我知道“一切都是文件”意味着即使设备在Unix和类似Unix的系统中也具有其文件名和路径,并且这允许在各种资源上使用通用工具,而不论其性质如何。但是我无法与Windows进行对比,Windows是我使用过的唯一其他操作系统。我已经阅读了一些有关此概念的文章,但我认为对于非开发人员而言,有些不容易理解。外行的解释是人们所需要的! 例如,当我要将文件复制到读卡器附带的CF卡时,将使用类似 zcat name_of_file > /dev/sdb 我认为在Windows中,读卡器将作为驱动程序出现,我们会做类似的事情。那么,“一切都是文件”哲学在这里有何不同?

4
用bash读取文件中的行:for vs. while
我正在尝试读取文本文件,并使用bash脚本对每一行进行处理。 因此,我有一个看起来像这样的列表: server1 server2 server3 server4 我以为可以使用while循环来遍历,就像这样: while read server; do ssh $server "uname -a" done < /home/kenny/list_of_servers.txt while循环在运行1次后停止,因此仅uname -a在server1上运行 但是,使用cat的for循环可以正常工作: for server in $(cat /home/kenny/list_of_servers.txt) ; do ssh $server "uname -a" done 更让我感到困惑的是,这也行得通: while read server; do echo $server done < /home/kenny/list_of_servers.txt 为什么我的第一个示例在第一次迭代后停止?

5
在GNU Linux中要求功能的正确方法是什么?
我正在尝试发送有关应用文件/ usr / bin / file的错误报告 但是咨询这个人并发送电子邮件 错误请报告错误,并将修补程序发送到错误跟踪器,网址为http://bugs.gw.com/ 或listfile@mx.gw.com⟩的邮件列表(请访问 http://mx.gw.com/mailman/ listinfo / file首先订阅)。 让我发现邮件地址不存在。 有没有其他与社区沟通的方式?希望这里的问题已经成为问题的一部分:) 所以这是我的电子邮件: 可能的功能故障:该--extension选项似乎未输出任何内容 $ file --extension "ab.gif" ab.gif: ??? 轻松使用此输出将文件重命名为其正确扩展名将很有用。 诸如文件之类的内容--likely_extension只会输出可能检测到的扩展名,或者如果检测到的检测值太低则显示错误 像这样: $ file --likely_extension "ab.gif" gif 更好的--correct_extension选择是: $ file --correct_extension "ab.jpg" $ ls ab.gif 该应用的Tyvm :)

10
是否有方便的方法将文件分类为“二进制”或“文本”?
标准Unix实用程序喜欢grep并diff使用一些启发式方法将文件分类为“文本”或“二进制”。(例如grep,输出中可能包含类似的行Binary file frobozz matches。) 是否有一种方便的测试方法可以应用到zsh脚本中以执行类似的“文本/二进制”分类?(除了类似的东西grep '' somefile | grep -q Binary。) (我意识到任何此类测试都必然是启发式的,因此是不完善的。)
35 files  text 

3
如何使文件不可修改?
登录后,我可以执行以下操作: mkdir foo touch foo/bar chmod 400 foo/bar chmod 500 foo 然后,我可以打开vim(而不是root),进行编辑bar,使用强制写入w!,然后修改文件。 如何使操作系统不允许任何文件修改? 更新2017年3月2日 chmod 500 foo是一个红色鲱鱼:目录的写权限与修改文件内容的能力无关,而与创建和删除文件的能力无关。 chmod 400 foo/bar实际上确实阻止了文件内容的更改。但是,它并不能阻止改变文件的权限-文件的所有者可以随时更改自己的文件的权限(假设他们可以访问该文件即对所有祖先目录的执行权限)。实际上,strace(1)揭示了vim(7.4.576 Debian Jessie)所做的工作-vim调用chmod(2)来临时添加文件所有者的写许可权,修改文件,然后调用chmod( 2)再次删除写权限。这就是使用chattr +iWorks的原因-只有root可以调用chattr -i。从理论上讲,如果以root身份运行,vim(或任何程序)对chattr的作用与对不可变文件的chmod的作用相同。

3
如何将wget与URL列表及其对应的输出文件一起使用?
假设list_of_urls看起来像这样: http://www.url1.com/some.txt http://www.url2.com/video.mp4 我知道如何将其用于: wget -i list_of_urls 但是,如果我list_of_urls有这个,它们都返回正确的文件,例如PDF或视频,该怎么办: http://www.url1.com/app?q=123&gibb=erish&gar=ble http://www.url2.com/app?q=111&wha=tcha&mac=allit 对于单个文件,我可以这样做: wget -O some.txt "http://www.url1.com/app?q=123&gibb=erish&gar=ble" 如何使用wget该URL列表下载并将返回的数据保存到正确的本地文件中?
35 files  wget  download  links 

5
是否有可能找出创建给定文件的程序或脚本?
我的主目录中突然出现了三个文件,分别是“ client_state.xml”,“ lockfile”和“ time_stats_log”。最后两个为空。我想知道他们如何到达那里。这不是第一次,而是最后一次是几周前。我删除了文件,但没有损坏或抱怨。在报道的时候我还无法想起我在做什么stat $filename。我有什么办法可以找出它们的来源? 或者,是否可以监视主目录(但不监视子目录)的文件创建?
35 files  monitoring 

5
mv -f有什么意义?
该用于GNU Coreutils的手册mv说: -f --force Do not prompt the user before removing a destination file. 但是,这似乎已经是的默认行为mv,因此该-f选项似乎是多余的。例如在GNU Bash版本4.3.11中: $ ls -l total 0 $ touch 1 2; mv -f 1 2; ls 2 $ touch 1 2; mv 1 2; ls 2 -f标志的意图似乎不太可能是重写alias mv="mv -i",因为存在几种重写别名(例如使用\mv)的标准方法,这些方法可以更简洁,且在命令之间保持一致。 手册指出:“如果您指定-i,-f,-n选项中的多个选项,则只有最后一个选项会生效。”但是,该-f标志的意图似乎-i一般是不能覆盖该标志,因为等同的行为可以通过简单地使用来实现mv,这比使用更加简洁和易懂mv -if。 既然如此,-f标记的目的是什么?为什么存在?
34 files  history  mv 

6
我该如何进行“更改后复制”操作?
我想将一组文件从目录A复制到目录B,但需要注意的是,如果目录A中的文件与目录B中的文件相同,则不应复制该文件(因此,修改时间不应为更新)。有没有办法用现有工具来做到这一点,而无需编写自己的脚本来做到这一点? 详细说明一下用例:我正在自动生成.c临时目录中的一堆文件(通过必须无条件生成所有文件的方法),当我重新生成它们时,我只想复制已更改到实际源目录的文件,保持不变(保留其旧的创建时间),以使他们make知道不需要重新编译它们。(.c不过,并非所有生成的文件都是文件,因此我需要进行二进制比较而不是文本比较。) (附注:这个增长我问的问题出https://stackoverflow.com/questions/8981552/speeding-up-file-comparions-with-cmp-on-cygwin/8981762#8981762,我在那里试图为了加快我用来执行此操作的脚本文件的速度,但是我想到我真的应该问,是否有比编写自己的脚本更好的方法了—尤其是因为任何简单的方法都可以在shell中执行脚本会cmp在每对文件上调用类似的代码,并且启动所有这些进程都需要很长时间。)

4
将文件夹的写权限授予文件夹
如何授予1组写权限? 我有2个用户(alex和ben)。 alex是group alex和group的成员consult。 ben是group ben和group的成员consult。 我想授予对该文件夹alex和ben文件夹的读写权限consult_documents。 我认为alex,如果我成为目录的所有者consult_documents并授予775对目录的访问权限consult_documents,ben并且alex能够访问该文件夹。 但这还会允许ben访问alex的其他文件夹吗?如果用户位于两个组中,是否意味着两个组中的所有成员都对所有文件夹具有相同的权限?


3
最近修改的文件列表
我如何获得3个月前修改过的所有文件的列表。我检查了这个问题,但无法将其应用于我的方案。我现在正在尝试这样做,它似乎正在工作,但是我知道应该使用find更好的方法。 ls -ltR | grep -v '2011-05' | grep -v '2011-06' | grep -v '2011-07' | grep -v '2011-08
33 files  find  ls  date 

4
删除文件的前n个字节
我遇到了一个极端的问题,我能想到的所有解决方案都很复杂。根据我的UNIX / Linux经验,必须有一种简单的方法。 我想删除中每个文件的前31个字节/foo/。每个文件足够长。好吧,我敢肯定有人会为我提供一个我无法想象的超简单解决方案。也许awk?

7
在Linux中创建零字节文件的概念是什么?
如果我执行以下操作: touch /tmp/test 然后执行 ls -la /tmp/ 我能看到的test文件,0字节的目录。 但是操作系统如何处理0字节的概念。如果我用外行的话来说: 0字节完全没有内存,因此不会创建任何内容。 文件,创建必须或应当至少需要一定的内存,对不对?


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.