Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

4
rsync,删除接收方已在发送方删除的文件。(但不要删除所有内容)
我想使用rsync来... 删除在接收方也已在发送方删除的文件 不删除接收方rsynced目录中的其他文件 例如,假设我有一个目录local-src: 之前: local-src本地包含... a.txt b.txt c.txt 我要同步到的内容的远程目录local-src称为remote-src。 之前: remote-src远程包含... a.txt b.txt c.txt d.txt README.md 假设我删除了一些文件local-src: 局部删除后: local-src本地包含... c.txt 如何使用rsync来确保在源位置删除的文件也可以在目标位置删除,而又不能删除在目标位置的其他文件。例如,我要在目的地放置以下物品: 本地删除后: remote-src远程包含... c.txt d.txt README.md 也就是说,a.txt并且b.txt被远程删除为好,但d.txt和README.txt被单独留在家中。 有什么办法可以使用rsync做到这一点? 编辑:判决似乎是使用rsync这可能是不可能的。有人问我为什么需要这个,所以来说明我的用例: 假设我有一个Web服务器。在该Web服务器上,我有一堆目录,比方说,我有一个目录A以及public_html从中提供网站的目录。假设我有一些自动化过程,可以在directory中生成文件A。我想rsync的(或使用其他工具同步)产生或文件更新中A的public_html目录,而不删除其他任意文件,可能是内public_html。我当然不希望rsync意外删除我的网站。 如果rsync不是完成这项工作的工具,那么其他人知道我该怎么做吗?
9 rsync 

2
将文件添加到zip文件中的其他路径
我有一个文件放在以下目录中: folder_A/another_folder_A/file_to_add.xml 现在,我要做的只是将文件添加到现有zip归档文件中的文件夹中。 例如,这是我的zip内容: my_zip.zip/folder_B/another_folder_B 如何将添加file_to_add.xml到another_folder_B? my_zip.zip/folder_B/another_folder_B/file_to_add.xml 我不想创建具有相同名称的文件夹并添加它们。有命令允许我这样做吗?
9 zip  7z 

3
来自GRUB2的Chainload syslinux-显示syslinux.cfg菜单
我正在使用Clonezilla实时USB磁盘重新映像系统。根据http://clonezilla.org/fine-print-live-doc.php?path=clonezilla-live/doc/99_Misc/00_live-boot-parameters.doc中解释的内容,我的磁盘会提示我包含菜单在syslinux.cfg除了将在UEFI机器的最新之外的所有系统(以及已在BIOS配置为从UEFI设备第一次开机),在那里我提示的grub.cfg菜单。 鉴于我对syslinux.cfg菜单进行了大量定制,因此我想将grub.cfg文件修改为仅自动链加载到syslinux,以便syslinux.cfg在所有情况下都显示菜单。 这有可能吗?怎么样? 磁盘上有GRUB2,我的理解(从Internet上看)是可能的,但是我还不知道如何。任何帮助表示赞赏。编辑:我想澄清一下,系统使用grub引导时没有出现问题grub.cfg,默认情况下没有选择Conezilla下载提供的菜单中的任何选项,但是我想做的是显示syslinux的菜单(在中syslinux.cfg)而不是grub.cfg 第二次编辑中的默认菜单,而是如何执行的:最终,建议的解决方案对我不起作用,因此我只是将“ EFI \ boot”文件夹设置为“不可用”(重命名);这样,UEFI引导失败,并且系统从syslinux像旧系统一样引导:没有对BIOS的修改,没有新的菜单,没有chainload ...

4
将多个目录传递给find中的-prune选项
我find用来查找和删除备份文件,但希望从搜索中排除某些目录。备份文件名可能会终止.bck,bak,~,或backup。 只有三个要排除的目录的最小工作示例(MWE)代码是: #! /bin/bash find . -type d \( -path "./.*" -o -path "./Music" -o -path "./Documents" \) -prune -o -type f \( -name "*.bck" -o -name "*.bak" -o -name "*~" -o -name "*.backup" \) -print0 | xargs -0 --no-run-if-empty trash-put 语法\( -path "dir1" -o -path "dir2" ... -o -path …

1
使用`/ run / shm`(以前是`/ dev / shm`)作为临时目录
在/run/shm(以前/dev/shm)中创建目录并将其像临时目录一样用于应用程序是一种好习惯吗? 背景:我正在为一个程序编写黑匣子测试,该程序对文件和目录做了很多工作。对于每次测试,我都会创建很多文件和目录,然后运行程序,然后创建预期的文件和目录集,然后运行diff进行比较。我现在有大约40个测试,它们已经花费了2秒钟以上的时间来运行。希望加快速度,我想在某种虚拟磁盘上的目录中运行测试。 在研究ram磁盘时,我偶然发现了一个带有答案的问题,指出可以在其中创建目录/dev/shm并像临时目录一样使用该目录。然而,研究了更多内容后,我偶然发现了来自debian 的Wiki页面,指出/dev/shm直接使用是错误的。我应该使用这些shm_*功能。不幸的是,这些shm_*功能似乎无法在Shell脚本中使用。 现在我很困惑。是否可以像/run/shm以前/dev/shm那样使用temp目录?

1
在什么情况下,gunzip和tar xf可以工作,但是tar xzf失败?
为了说明这一点:我已经从公司的网站下载了LEDA库。在其上使用tar -xzf失败: $ tar -xzf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz tar: This does not look like a tar archive tar: Skipping to next header tar: Exiting with failure status due to previous errors 但是,先执行gunzip,再执行tar -xf即可: $ gunzip LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz $ tar -xf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar # no error 谁能告诉我为什么会这样吗?-我希望标准tar命令一直运行。
9 tar  gzip 

1
转发所有端口SSH
我有关于SSH /端口转发的问题。我在任何地方都找不到解决方案,也不知道是否有解决方案。 我家里的NAT盒后面有一个服务器。我已经将端口从我的NAT盒转发到服务器的端口22上的SSH,因此,my_nat_public_ip:22当我在旅途中时,我可以连接到它,并且它就像一种魅力。 现在,我知道我也可以访问服务器的任何端口,甚至无需为其配置NAT框。确实,我可以像这样进行动态端口转发: ssh -D 1080 user@my_nat_public_ip 然后通过设置浏览器连接到服务器的any_port端口,否则将localhost:1080用作SOCKS代理,并指向my_local_server_ip:any_port。 我想做的是像这样的命令 ssh -D --local_alias=local_alias user@my_nat_public_ip 如果我访问local_alias:any_port,它将转发到my_server:any_port 那有可能吗?是否有SSH选项可以执行此操作?它只是简单得多,因此可以在不同的服务器上进行多个动态端口转发。

2
Gawk:将数组传递给函数
卡在GNU awk 3.1.6中,认为我已经解决了它的数组错误,但是在600行awk程序中仍然遇到了范围问题。需要验证对awk中数组作用域的理解才能找到我的错误。 给定这个说明性的awk代码... function foo(ga) { ga[1] = "global result" } garray[1] = "global" foo(garray) print garray[1] 将打印... global result 由于数组总是通过引用传递给函数,因此所有数组始终是全局的。无法创建本地数组。它是否正确?一直无法找到明确说明这一点的文档。 由于我正在调试,并且3.1.6本身在该区域中存在已知的错误,因此我试图确定awk的错误在哪里消失并从我的那里开始。 补充:那么ga []为什么在函数内部起作用? 首先,foo(ga)实际上不需要将数组传递给函数。只需以garray[]在函数内部进行。这样做并没有可衡量的性能损失,它有助于调试和错误报告。 在使用中foo(ga),ga[]是全局数组的同义词garray[]。与其成为的本地副本garray[],不如说是一个指向garray[],而是,就像符号链接是指向文件的指针一样,因此可以使用多个名称访问同一文件(或数组)。 补充:澄清格伦·杰克曼的答案 虽然在函数外部创建的数组对于函数是全局的,可以传递给函数,也可以在函数内部引用,但是在函数内部创建的数组的确确实在函数本地,并且在函数外部不可见。修改杰克曼先生的例子说明了这一点... awk ' function bar(x,y) { split("hello world", y) print "x[1] inside: " x[1] print "y[1] inside: " y[1] } BEGIN { …
9 awk  function  array 

1
如何将.bash_profile移离家
我需要.bash_profile与Dropbox同步。我能想到的最简单的方法是“重定向”外壳程序以.bash_profile在自定义文件夹中搜索。 那有可能吗?还是有更好的解决方案?

1
“ apt-get install”什么时候要求我确认是否要继续?
有时“ apt-get install”会问我"Do you want to continue [Y/n]?": root@T43:~# apt-get install chmsee Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libchm1 The following NEW packages will be installed: chmsee libchm1 0 upgraded, 2 newly installed, 0 to remove and 0 …
9 apt 

1
确定给定文件的LVM范围编号
我目前正在从事与工作无关的家庭作业。我有一个坐在逻辑卷上的ext4文件系统。我正在测试不同的性能调整策略,这个想法出现在我身上。由于pvmove可以移动单个范围和范围的范围,因此有一种方法可以绘制出哪些物理范围来保存特定文件(理论上它可以为数据库备份文件或大型的常用文件共享)并将它们移至特定范围存储设备(例如,我在同一LVM卷组中有一个常规HDD和一个SSD驱动器)? 我曾想过使用“ filefrag”,但后来我发现对于范围号是否必须按顺序使用并不是100%的了解(因此知道ext4中有多少个扇区可以看到一个文件并不一定会让我可以找出文件实际位于哪个扩展区编号/卷上。 有任何想法吗?


1
LVM快照最终会导致碎片吗?
我计划使用LVM,以便能够拍摄大文件的原子快照并将它们重新同步到远程站点。 我想知道的是对主(非快照)卷是否有长期影响:如果我通常在删除和创建新快照之前将快照保留24小时,那么主卷是否会变得越来越分散?
9 lvm  snapshot 

4
透明地运行葡萄酒程序
当我想运行一个酒程序时,我必须输入例如 $ wine ~/.wine/drive_c/Program\ Files/TextAloud/TextAloudMP3.exe 可以直接运行TextAloudMP3吗?我的意思是不仅从命令行(我可以创建别名),而且在整个图形环境中。我正在使用启动程序dmenu。

3
调用与控制终端断开连接的命令/脚本?
我正在研究通常以自动化流程运行的脚本的行为(例如cron,Jenkins)。脚本可以(最终)调用以交互方式运行时行为不同的命令(寻求用户输入);例如,patch将询问如何处理反向补丁,并svn询问密码,但是我需要查看当它们非交互式运行时会发生什么。 说服patch它是非交互的是相当容易的。我只需要重定向stdout成为非tty: $ </dev/null > >(cat) /path/to/myscript --args 但是,svn将连接到控制端子(如果存在);否则将连接到控制端子。编辑脚本以通过--non-interactive不是一个真正的选择,因为它来自多个层次,很难确定我是否找到了每个调用。 有没有办法在没有控制终端的情况下(因此/dev/tty不存在)非交互地调用脚本/命令?我希望stdout / stderr仍然可以转到我的终端。 (我在非交互式外壳中找到了问题“运行脚本”吗?但是该问题的答案讨论了cron和用户环境之间的差异;我已经消除了除非交互性之外的所有差异。)

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.