小编gat*_*ack的帖子

如何使用单个命令将磁盘映像解压缩并添加到 SD 卡?

我受到以下限制:

  • 我的.zip计算机上有一个 1.0 GB 的文件,其中包含一个文件,一个raspbian. 解压缩后,此文件为 3.2 GB,名为2015-11-21-raspbian-jessie.img.
  • 下载 zip 文件后,我的计算机上只有不到 1.0 GB 的存储空间,没有足够的空间将图像解压缩到我的计算机上。
  • 这个文件需要解压缩并使用普通的dd.

在这些限制下,我可以将图像写入 SD 卡吗?

我知道可以通过管道传输数据tar,然后通过管道将数据传输到其他地方,但是,这是否仍然适用于zip文件格式,或者在访问任何文件之前是否需要解压缩整个存档?

zip dd

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

是否有终端命令可以确定 ISP 是否阻止端口 25,而无需实际设置电子邮件服务器?

我正在考虑设置电子邮件服务器,但担心 ISP 会阻止端口 25。如果在设置电子邮件服务器之前知道端口 25 是否打开,那就太好了。

是否有终端命令可以确定我的 ISP 是否阻止端口 25,而无需实际设置电子邮件服务器?

email

12
推荐指数
3
解决办法
4435
查看次数

诊断 rsync 瓶颈

目标:将大量大文件(文件大小>500MB)从一个 NAS (WD Mycloud) 同步到另一个。rysnc 在两者上都可用。两者都通过千兆交换机连接。NAS 文件可以使用 Windows 资源管理器以 40+MB/s 的速度移动,但是文件元数据(日期)会更改为当前日期。rsync 运行速度约为 10-12MB/s。

我最初通过 CIFS 挂载源,但我被告知这可能是一个瓶颈,所以我放弃了 CIFS 并尝试关闭压缩:

rsync -aHXxvn --numeric-ids --delete --progress -e "ssh -T -c arcfour -o Compression=no -x" root@192.168.8.109:/shares/public/Data /shares/public/
Run Code Online (Sandbox Code Playgroud)

这个命令源于这篇文章,我认为这表明该命令会优化 SSH 开销

我没有观察到任何速度增加。可以执行什么测试来诊断阻止 40MB/s 传输的瓶颈?

rsync

5
推荐指数
0
解决办法
676
查看次数

清零 NTFS 可用空间

zerofree 命令ext2ext3文件系统中查找未分配的非零块并用零填充它们

一台带有机械驱动器的 NTFS Windows 机器从 7 升级到 10。驱动器很旧,我怀疑大部分可用空间实际上有数据而不是用零填充。

是否有可能(如何?)将可用空间归零,以便在创建图像时,尺寸最小?

假设使用 Ubuntu 或 SysRescueCD 配置的可启动 USB 可用于通过安装 NTFS 分区来处理 HDD(NTFS-3G如有必要)

filesystems ntfs

5
推荐指数
2
解决办法
2294
查看次数

NFS 的烟雾测试?

是否有一个简单的测试(比如 ping 来确定网络设备是否在线)来确定是否在 NAS 上启用了 NFS?假设可以通过终端命令行对 NAS 进行 root 访问。

在 NAS 命令行上,我尝试过:

netstat -tulpn | grep -i nfs
Run Code Online (Sandbox Code Playgroud)

它没有返回任何东西。可能是 nfs 没有运行或者这不是正确的命令。

NAS信息:

uname -a
Linux WDMyCloud 3.10.39 #1 SMP Fri Aug  5 11:16:40 CST 2016 2014 T20p4 Build-git3f 24b4d armv7l GNU/Linux
Run Code Online (Sandbox Code Playgroud)

nfs

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

如何在-exec脚本中增加COUNTER?

上下文:zsh Catalina MacOS:

可执行脚本BatesStamp使用 imagemagick 将数字标记到 jpg 文件:

# BatesStamp: OVERWRITES and stamps ONE file with COUNTER  (upper left corner)
# usage  ./BatesStamp  COUNTER  PATH_FILE   
# to be used with find & -exec: https://unix.stackexchange.com/a/96239/182280   


COUNTER=$1     # 1st argument = number to be stamped upon .jpg file
PATH_FILE=$2   # 2nd argument = /path_to_file/Filename.jpg

convert $PATH_FILE  -auto-orient -gravity northWest  -font "Arial-Bold-Italic" -pointsize 175 \
   -fill red  -annotate +30+30   "$COUNTER"  $PATH_FILE;
   ((COUNTER++))  #/sf/answers/1472460251/
   echo "watermarked i= $COUNTER  $PATH_FILE"
Run Code Online (Sandbox Code Playgroud)

目标是用唯一的编号标记目录树中的所有 .jpg 文件。我相信每次调用 …

find shell-script exec

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

复制 SD 卡

背景

已为 Raspberry pi 配置了 SD 卡。目标是精确复制 SD 卡(操作系统、应用程序、数据),以便副本在 rPi 中的功能与原始 \ 主 SD 卡完全相同。

更新:假设:

  • 复制将在配置有类 UNIX 操作系统的笔记本电脑上执行
  • 不应从 rPi 执行复制
  • 目标 SD 卡是相同的品牌/型号
  • 源 SD 卡分区有不同的文件系统:

在此处输入图片说明

问题

带有 SD 卡插槽和 USB SD 卡读卡器/写卡器的 Ubuntu HP 笔记本电脑有哪些 UNIX 克隆选项可用。

USB SD卡RW是读卡器还是写卡器有区别吗?

一个目标(约束)是避免购买额外的硬件。

解决方案观察

date; sudo sh -c 'cat sdcard.image >/dev/mmcblk0'; date
Run Code Online (Sandbox Code Playgroud)

Mon Jun 3 17:53:18 EDT 2019 [sudo] 用户密码:Mon Jun 3 23:42:17 EDT 2019

date; sudo sh -c 'pv sdcard.image >/dev/mmcblk0'; date
Run Code Online (Sandbox Code Playgroud)

Tue Jun 4 00:33:50 EDT 2019 [sudo] …

storage cloning sd-card

3
推荐指数
1
解决办法
1802
查看次数

从文件的每一行中删除第一个 ^M

数据从第二行开始。 是否有一个简单的脚本或实用程序来删除每行数据的第一个实例^m

该问题也可以重新表述为:如何^m删除每秒(甚至)实例?期待有趣(聪明)的回应。最好在 Ubuntu 或类似版本中。

在此处输入图片说明

用于巧妙剪切、粘贴和解析的原始数据:

Date,From,To,Flight_Number,Airline,Distance,Duration,Seat,Seat_Type,Class,Reason,Plane,Registration,Trip,Note,From_OID,To_OID,Airline_OID,Plane_OID^M
- -,JFK,OTBD,American Airlines (AA),American Airlines,6687,13:52,,,,,777^M,,,"Direct",3797,2241,24^M
- -,JFK,OTBD,Qatar Airways (QR),Qatar Airways,6687,13:52,,,,,77W^M,,,"Direct",3797,2241,4091^M
Run Code Online (Sandbox Code Playgroud)

话虽如此,提出这个问题的原因是意外的 ^m 导致了 Libre-Office Calc(电子表格)的导入问题:它导致了预期的换行。

在此处输入图片说明

text-processing

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

根据符号链接更改文件权限

此处列出了特定的 USB 硬件:

ls -l /dev/input/by-id/
Run Code Online (Sandbox Code Playgroud)

符号链接:/dev/input/by-id/usb-Metrologic_Metrologic_Scanner-event-kbd 解析为: /dev/input/eventxx ,其中 xx 是整数。在此示例 event19 中:

ls -l /dev/input/by-id/usb-Metrologic_Metrologic_Scanner-event-kbd
lrwxrwxrwx 1 root root 10 Nov 23 22:02 /dev/input/by-id/usb-Metrologic_Metrologic_Scanner-event-kbd -> ../event19
Run Code Online (Sandbox Code Playgroud)

是否有可以对符号链接进行操作的命令来更改目标文件的权限?IE

chmod 666 /dev/input/eventXX
Run Code Online (Sandbox Code Playgroud)

期待聪明而优雅的例子。

permissions symlink

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

find 返回同一文件的两个行项目条目

命令:

find . ! -name '*153902*.json' -exec ls -nls {} + | sort -k 10
Run Code Online (Sandbox Code Playgroud)

返回:

12 -rw-rw-r-- 1 1000 1000  8359 May  6 15:11 ./Flights20180506-151026_KSEA_300.json
12 -rw-rw-r-- 1 1000 1000  8359 May  6 15:11 Flights20180506-151026_KSEA_300.json
44 -rw-rw-r-- 1 1000 1000 40999 May  6 15:39 Flights20180506-153902_KATL_0.json
Run Code Online (Sandbox Code Playgroud)

此响应片段显示前两个行项目似乎表示同一个文件:不同之处在于文件名前有一个“./”。第一个 line-item 代表什么,为什么第三个 line item 没有 ./ ?

myname@Metropolitan:~/FlightAwareXML3/Thanksgiving18$ find . ! -name '*153902*.json' -exec ls -nlst {} \; | grep 153902_KATL_0
44 -rw-rw-r-- 1 1000 1000 40999 May  6 15:39 Flights20180506-153902_KATL_0.json
Run Code Online (Sandbox Code Playgroud)

问题

  1. 谷歌了解./语法的独特关键字是什么? …

find

0
推荐指数
1
解决办法
35
查看次数

为什么将输出重定向到文件会生成一个表?

我想设置一个 cron 作业来定期记录测量。USB 记忆棒安装在路由器中:

user@router:/tmp/home/root# uname -a
Run Code Online (Sandbox Code Playgroud)

Linux 路由器 2.6.36.4brcmarm #2 SMP PREEMPT Sun Mar 20 16:06:18 EDT 2016 armv7l GNU/Linux

user@router:/tmp/home/root# curl http://THERMOSTAT/tstat/humidity  >> /tmp/mnt/USBstick/CT80_data/C14HumidityData.txt

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    18    0    18    0     0     80      0 --:--:-- --:--:-- --:--:--    83
Run Code Online (Sandbox Code Playgroud)

为什么将输出附加 (>>) 到文件会产生上表?

不追加时不生成表:

curl http://THERMOSTAT/tstat/humidity
{"humidity":51.00}
Run Code Online (Sandbox Code Playgroud)

是否有命令选项来抑制表响应?

pipe io-redirection curl

0
推荐指数
1
解决办法
40
查看次数

递归查找 *.c 文件用于 dos2unix 处理

目标是使用以下命令处理find *.c 文件dos2unix

find . -name *.c | xargs dos2unix -f
Run Code Online (Sandbox Code Playgroud)

尝试对上述命令进行故障排除:

user@host:~/csim/exercise$ find . -name *.c
./6-1/dinph_3p.c
./6-1/dinph_pi.c
./9-2/lift.c
./6-4/cmptr.c
./8-7/station.c
./7-4/hire.c
./5-2/ran_test.c
./8-4/cmptrm.c
./9-5/trunked.c
./8-5/computer.c
./9-3/aloha.c
./12-3/mcpu.c
./10-5/abp_pi.c
./6-2/dinph_3p.c
./6-2/dinph_pi.c
Run Code Online (Sandbox Code Playgroud)

为什么当 BASH 上移一个目录时:

$ cd ..
Run Code Online (Sandbox Code Playgroud)

相同的命令至少不会返回上面列出的 .c 文件?

user@host:~/csim$ find . -name *.c
find: paths must precede expression: random.c
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec|time] [path...] [expression]
Run Code Online (Sandbox Code Playgroud)

find

0
推荐指数
1
解决办法
344
查看次数

文件名中的空格“破坏”文件名脚本

来自https://unix.stackexchange.com/a/612718/182280 的Terdon 示例 3 :

  1. 选择除名称以.sh或结尾的文件之外的所有文件.jkl

    $ shopt -s extglob nullglob
    $ files=(!(*.sh|*.jkl))
    $ echo "${files[@]}"
    file.abc file.ABC file.def file.ghi
    
    
    Run Code Online (Sandbox Code Playgroud)

挑战是文件中的空格导致脚本失败:

for f in ${files[*]}  #https://unix.stackexchange.com/q/278502/182280
do
 echo "Processing $f file... "
done
Run Code Online (Sandbox Code Playgroud)

例如,文件中的空间在fi le1.jkl被脚本处理时“破坏”了文件并返回:

 processing `fi` file...
 processing `le1.jkl` file...
Run Code Online (Sandbox Code Playgroud)

如何确保空格不会“破坏”文件名?

有助于澄清上下文/问题的评论表示赞赏。

wildcards

-1
推荐指数
1
解决办法
518
查看次数