标签: bash

cp -u 在 mac 上是非法的。有哪些替代方案?

我有一台 MacbookPro Lion,我尝试归档我的文件,如果源比目标新,我试图复制和覆盖这些文件。我尝试了以下命令

cp -u source destination
Run Code Online (Sandbox Code Playgroud)

但它说, -u 是非法的。我也没有在man cp.

你能帮忙吗,在这种情况下我该怎么办?

[我有问题从 SO 移到这里,所以请随时再次回答。我希望这是处理这个问题的正确方法]

unix bash osx-lion macos

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

用 mtime - 和 + 找出不同之处

mtime's-+switch有什么区别,因为两者都没有带回我需要的结果?

我想删除所有超过 5 天的文件:

 find /mnt/sdb1/tmp/ -type f -mtime +5 -exec ls {} \;
 find /mnt/sdb1/tmp/ -type f -mtime -5 -exec ls {} \;
Run Code Online (Sandbox Code Playgroud)

我已将输出更改为ls以比较结果。

linux bash find

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

在单行 bash 别名中修剪尾随换行符

我正在尝试在 Mac OS X 终端上编写一个简单的别名来复制当前工作目录。我有这个:

alias cpwd="echo \`pwd\` | pbcopy; echo \"Copied \`pwd\`\""
Run Code Online (Sandbox Code Playgroud)

然后我可以运行以下命令来复制它:

$ cpwd
Run Code Online (Sandbox Code Playgroud)

问题是最后echo pwd包含换行符。所以当我粘贴它时,它会立即执行(如果粘贴在终端中)。

我想要做的就是去掉试用换行符,但我在互联网上找到的任何东西似乎都不适合我。看过涉及sed,awk和 的各种解决方案cut,但我不太明白。似乎很容易做到。

terminal bash whitespace newlines macos

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

下载 .tar 并将其解压缩到特定目录

我想下载 git repo 的 tar 并将其内容解压缩到另一个文件夹。

以下行(为了清楚起见而分解)有效:

curl -L -0 nt-dotfiles.tar.gz https://api.github.com/repos/nicktomlin/laptop/tarball \
 | tar --strip-components=1 -zx -C ~/Documents/dotfiles
Run Code Online (Sandbox Code Playgroud)

但给出了这个错误:

curl: (6) Could not resolve host: nt-dotfiles.tar.gz; nodename nor servname provided, or not known

我可以保持原样(因为它仍然有效),但我对错误很好奇,如果它消失了会感觉更好。

谢谢!

bash curl

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

如何在保留(非零填充)数字排序的同时附加一堆 .wav 文件?

我有很多(7500 个).wav 文件(以它们的编号命名),我想将它们合并为一个。我认为它必须使用 bash 循环来完成,因为使用通配符某些文件的顺序会错误(例如 2 之前的 1111)。

在 Linux 下执行此操作的最佳方法是什么?

bash wav sox

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

bash 列命令被 ANSI 颜色转义混淆

我有一个来自 Gary Bernhardt 的 dotfiles 的 bash 脚本,它打印了最近 git 提交的漂亮彩色列表。它使用该column命令将输出排列成列。在我的 Mac 上,它运行得非常好。

然而奇怪的是,当我在 Cygwin 或 CentOS 6 上运行它时,列位不起作用。所有字段之间都有三个空格,无论它们的长度如何,都会在“列”之间产生锯齿状的排水沟。我已将其范围缩小到 ANSI 颜色转义码。如果我删除这些,列会排成一列。

zsh 版本在所有三个上都相同(并且问题在 bash 中的出现方式完全相同)。我不知道是什么版本column,但它们看起来完全一样,而且它们的手册页对于任何有价值的东西都是一样的。

为什么这适用于我的 Mac 而不适用于其他操作系统?

centos cygwin bash

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

BASH - 使用 mv 时合并目录

我刚开始使用 BASH,所以我可以将一个目录的所有内容移动到另一个目录。但问题是,我期待它合并目录。我正在使用 cron 作业来运行此脚本。

#!/bin/bash

shopt -s dotglob nullglob
mv mv_schedule/* public_html/
Run Code Online (Sandbox Code Playgroud)

来源:(/mv_schedule/包含文件夹/文件)

/files/
4.html
5.html
/assets/
sitemap.xml
Run Code Online (Sandbox Code Playgroud)

目的地:(/public_html/以前的文件夹已经存在)

/files/
1.html
2.html
3.html
/assets/
sitemap.xml
Run Code Online (Sandbox Code Playgroud)

所以,我想要的东西,是所有来自这些目录内的新文件/mv_schedule/与在那些合并/public_html/,并已经在那里存在的文件,与那些来自何处来代替/mv_schedule/

当我使用当前脚本尝试此操作时,它当前正在通过电子邮件返回此错误:

mv: cannot move `mv_schedule/assets' to `public_html/assets': Directory not empty
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

linux unix bash cron

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

如何从Linux服务器上传多个文件到FTP?

例如,我的 Linux 服务器上有数据库备份,我想编写一个脚本将其上传到远程 FTP。我试过这个put命令,但它一次只能传输一个文件。然后我尝试了 mput 命令,但它只显示我要传输的文件的问号(也许我使用错误?...)

我试过这个:

#!/bin/bash
ftp -n <<EOF
open ftp.server.com
user name password
cd backup
mput /backup/*
EOF
Run Code Online (Sandbox Code Playgroud)

但它不会工作。它输出我想传输的文件名称,名称末尾带有问号。我错过了什么,或者有更好的更简单的方法吗?

linux ftp bash

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

你如何一起使用 PIPESTATUS、tee 和 /bin/sh?

当我跑

curl | tee test.txt; echo ${PIPESTATUS[0]}
Run Code Online (Sandbox Code Playgroud)

我正确地看到

curl:尝试“curl --help”或“curl --manual”以获取更多信息

2

但是当我尝试使用“/bin/sh”运行完全相同的命令时:

sh -c "curl | tee test.txt; echo \${PIPESTATUS[0]}"
Run Code Online (Sandbox Code Playgroud)

我得到

curl:尝试“curl --help”或“curl --manual”以获取更多信息

sh: 1: 替换错误

Bad substitution请问我们如何解决问题?

linux bash pipe exit-code

8
推荐指数
2
解决办法
6558
查看次数

Git Bash - Windows - 启动屏幕启动和资源管理器启动之间的不同字体大小

我在 Windows 8.1 上使用 Git Bash

我看到(至少)两种不同的方式来启动 Git Bash:

1) 开始屏幕 -> 输入 Git Bash -> 按 Enter

2) Windows 资源管理器 -> 右键单击​​文件夹 -> 选择“Git Bash”

当我用方法 1 打开程序时,我的字体很小。当我用方法 2 打开程序时,我的字体很大。这两种方法似乎都能正确读取我的 /etc/profile 和其他配置。

我更喜欢更大的字体,所以我希望它每次都用更大的字体打开。

启动方法有什么区别?为什么会发生这种情况,如何让它每次都使用大字体?

bash git windows-8 git-bash

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

标签 统计

bash ×10

linux ×4

macos ×2

unix ×2

centos ×1

cron ×1

curl ×1

cygwin ×1

exit-code ×1

find ×1

ftp ×1

git ×1

git-bash ×1

newlines ×1

osx-lion ×1

pipe ×1

sox ×1

terminal ×1

wav ×1

whitespace ×1

windows-8 ×1