junest 自动挂载/home/$user/
,这非常好,但我也想挂载,例如/srv/public
,/mnt/something
这样我就可以在 junest 环境中使用它,我该怎么做?
操作系统:Kubuntu 22.04.4 LTS x86_64
上面显示:
neofetch --stdout |grep 'OS:'
。
如何简单地清理文件名而不是文件内容?
通过从文件名中删除:
\n
换行符\t
选项卡- 不可打印字符
- 空间
对于 Microsoft Windows, < > : " \ / | ? *
文件名中没有。
< (less than)
> (greater than)
: (colon - sometimes works, but is actually NTFS Alternate Data Streams)
" (double quote)
/ (forward slash)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)
。
示例 1:
如何创建问题文件名。
在终端中
使用 mv 将换行符添加到文件名中:
touch a
mv a $'b\nc' # move (rename) files
ls # 'b'$'\n''c'
ls -b # b\nc
使用 GUI,按 F2 = 重命名:
b
c
。
示例 2:
较长的名称。
touch 'This filename will have Tabs and Newlines_.txt'
mv 'This filename will have Tabs and Newlines_.txt' $'This\tfilename\twill\thave\tTabs\nand\nNewlines_.txt'
ls # 'This'$'\t''filename'$'\t''will'$'\t''have'$'\n''Tabs'$'\n''and'$'\n''Newlines_.txt'
ls -b # This\tfilename\twill\thave\nTabs\nand\nNewlines_.txt
使用 GUI,按 F2 = 重命名:
This filename will have Tabs
and
Newlines_.txt
。
示例 3:
更多参与。
touch 'This filename will have Tabs and Newlines & SPACES & colon: _.txt'
mv 'This filename will have Tabs and Newlines & SPACES & colon: _.txt' $'This\tfilename\twill\thave\tTabs\nand\nNewlines & SPACES & colon: _.txt'
ls # 'This'$'\t''filename'$'\t''will'$'\t''have'$'\t''Tabs'$'\n''and'$'\n''Newlines & SPACES & colon: _.txt'
ls -b # This\tfilename\twill\thave\tTabs\nand\nNewlines\ &\ SPACES\ &\ colon:\ _.txt
使用 GUI,按 F2 = 重命名:
This filename will have Tabs
and
Newlines & SPACES & colon: _.txt
。
示例 3 中的 bash 清理文件名:
#!/bin/bash
clear
# FILE : original_filename comes from inotifywait command, On access, auto detect a file in /home/xxx/Downloads to eventually do a CLAM virus scan on FILE.
filename1=$FILE
filename1=$'This\tfilename\twill\thave\tTabs\nand\nNewlines\ &\ SPACES\ &\ colon:\ _.txt'
echo "$filename1"
filename2="${filename1//[$'\t'$'\n'$'\e'$'\r'$'\f'$'\v'$'\b'$'\a'$'\0']/-}" # Replace Non Printable Characters with dash -
echo "$filename2"
filename3="${filename2//[$'\ ']/_}" # Replace space with underscore _
echo "$filename3"
filename4="${filename3//[$':']/_}" # Replace colon : with underscore _
echo "$filename4"
。
bash 结果示例 3:
This filename will have Tabs
and
Newlines\ &\ SPACES\ &\ colon:\ _.txt
This-filename-will-have-Tabs-and-Newlines\ &\ SPACES\ &\ colon:\ _.txt
This-filename-will-have-Tabs-and-Newlines__&__SPACES__&__colon:___.txt
This-filename-will-have-Tabs-and-Newlines__&__SPACES__&__colon____.txt
用破折号替换了不可打印的字符 - 包括
\n
换行符\t
制表符
用下划线 _ 替换空格 _用下划线 _
替换冒号:
。
参考 1:
完整的不可打印字符列表
https://fjolt.com/article/linux-non-printable-characters
Name Binary Decimal Hexadecimal Octal Caret Escape
Notation Sequence
Null 000 0000 0 00 000 ^@ \0
Beep(BEL) 000 0111 7 07 007 ^G \a
Backspace(BS) 000 1000 8 08 010 ^H \b
HorizontalTab(HT) 000 1001 9 09 011 ^I \t
LineFeed(LF) 000 1010 10 0A 012 ^J \n
VerticalTab(VT) 000 1011 11 0B 013 ^K \v
FormFeed(FF) 000 1100 12 0C 014 ^L \f
CarriageReturn(CR) 000 1101 13 0D 015 ^M \r
Escape(ESC) 001 1011 27 1B 033 ^[ \e
9 Escape Sequences:
\0
\a
\b
\t
\n
\v
\f
\r
\e
used:
column -t -o ' ' a.txt b.txt
。
orig_filename=$'TN1\tThis\nFileName\nHas\tTabsandNewlines'
echo test > "$orig_filename"
new_filename="${orig_filename//[$'\t'$'\n']/-}"
mv --no-clobber "$orig_filename" "$new_filename"
。
参考3:
Shell参数扩展
${parameter//pattern/string}
https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
问题:
如何简单地清理文件名?
有哪些比较简单的命令?
--
我有一个名为“public”的目录,其中包含一千个子目录,例如:
public/63a/e9b/79a/file.pdf
public/64a/2cd/184/other_file.pdf
...
我的目标是将这些子目录中包含的所有文件移动到主目录(即:public)中。
我想我需要一个递归函数来做到这一点。
有人能帮我吗 ?
在全新安装 Proxmox 8.1 时,fdisk -l 发出警告“分区 3 未在物理扇区边界上启动”。这出乎我的意料,因为分区的起始位置是 2099200,可以被 8 (4096/512) 整除。
我担心这会影响性能和 SSD 寿命。
系统信息:
操作系统:Proxmox 8.1(Debian 12.5)
硬件:MegaRAID 12GSAS/PCIe Secure SAS39xx,RAID 5 中的 4 个磁盘
lshw 级磁盘级存储
*-raid
description: RAID bus controller
product: MegaRAID 12GSAS/PCIe Secure SAS39xx
vendor: Broadcom / LSI
physical id: 0
bus info: pci@0000:81:00.0
logical name: scsi0
logical name: /dev/fb0
version: 00
width: 64 bits
clock: 33MHz
capabilities: raid pm msi pciexpress msix bus_master cap_list rom fb
configuration: depth=32 driver=megaraid_sas latency=0 mode=1024x768 visual=truecolor xres=1024 yres=768
resources: iomemory:2000-1fff iomemory:2000-1fff irq:51 memory:20020f00000-20020ffffff memory:20020e00000-20020efffff memory:f2100000-f21fffff ioport:b000(size=256) memory:f2000000-f20fffff
*-disk
description: SCSI Disk
product: MR9560-8i
vendor: BROADCOM
physical id: 3.6f.0
bus info: scsi@0:3.111.0
logical name: /dev/sda
version: 5.27
serial: 00cd0054e9b972052d000a6910b26200
size: 2681GiB (2878GB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration: ansiversion=5 guid=efea2081-a6ca-4151-ae8b-d5cc971ce290 logicalsectorsize=512 sectorsize=4096
fdisk-x
Disk /dev/sda: 2.62 TiB, 2878970265600 bytes, 5622988800 sectors
Disk model: MR9560-8i
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 786432 bytes
Disklabel type: gpt
Disk identifier: EFEA2081-A6CA-4151-AE8B-D5CC971CE290
First usable LBA: 34
Last usable LBA: 5622988766
Alternative LBA: 5622988799
Partition entries starting LBA: 2
Allocated partition entries: 128
Partition entries ending LBA: 33
Device Start End Sectors Type-UUID UUID Name Attrs
/dev/sda1 34 2047 2014 21686148-6449-6E6F-744E-656564454649 7E31886C-4D4F-43A7-8F53-81BA700F4394
/dev/sda2 2048 2099199 2097152 C12A7328-F81F-11D2-BA4B-00A0C93EC93B 40656EBB-ABAE-4A26-BBA4-3D18CDAD8D80
/dev/sda3 2099200 5622988766 5620889567 E6D6D379-F507-44C2-A23C-238F2A3DF928 33753DAF-6729-4730-8237-318CED86E220
Partition 1 does not start on physical sector boundary.
Disk /dev/mapper/pve-swap: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 786432 bytes
Disk /dev/mapper/pve-root: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 786432 bytes
Disk /dev/mapper/pve-data: 59.99 GiB, 64416120832 bytes, 125812736 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 786432 bytes
Disk /dev/mapper/pve-vm--1001--disk--0: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 2097152 bytes
Disklabel type: dos
Disk identifier: 0x8b7a7123
Device Boot Start End Sectors Id Type Start-C/H/S End-C/H/S Attrs
/dev/mapper/pve-vm--1001--disk--0-part1 * 2048 1953791 1951744 83 Linu 4/4/1 1023/254/2 80
/dev/mapper/pve-vm--1001--disk--0-part2 1953792 3907583 1953792 82 Linu 1023/254/2 1023/254/2
/dev/mapper/pve-vm--1001--disk--0-part3 3909630 602861567 598951938 5 Exte 1023/254/2 1023/254/2
/dev/mapper/pve-vm--1001--disk--0-part5 3909632 101564415 97654784 83 Linu 1023/254/2 1023/254/2
/dev/mapper/pve-vm--1001--disk--0-part6 101566464 103518207 1951744 83 Linu 1023/254/2 1023/254/2
/dev/mapper/pve-vm--1001--disk--0-part7 103520256 602861567 499341312 83 Linu 1023/254/2 1023/254/2
Partition 3 does not start on physical sector boundary.
当我进入程序安装路径时,我会弄乱一些东西吗?例如,我是否可以通过意外地将文件从那里移动到不同的文件夹来破坏或更改某些内容?
我们从内核消息中得到的以下消息的含义是什么
# dmesg | grep "MDS CPU bug"
[ 0.432893] MDS CPU bug present and SMT on, data leak possible. See https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html for more details.
以上消息安全吗?或者需要采取一些相应措施
我正在使用 sox 创建 100ms 的合成器,这是我的命令:
/usr/bin/sox -V -r 44100 -n -b 64 -c 1 file.wav synth 0.1 sine 200 vol -2.0dB
现在,当我创建 3 个正弦波文件并将所有文件与
/usr/bin/sox file1.wav file2.wav file3.wav final.wav
然后我得到文件之间的间隙。我不知道为什么。但是,当我打开 file1.wav 时,我还会看到文件前面和末尾有一个短间隙。
如何创建精确 100 毫秒且前端和后端没有间隙的正弦?
我的第二个问题:是否也有可能用 sox 中的一个命令创建 10 个正弦波合成器?像 sox f1 200 0.1、f2 210 01、f3 220 01、...第一个 200hz 10ms、210hz 10ms、220hz 10ms
我在 sox 中尝试了一些不同的选项,但每个正弦文件总是这样:
我有一个 bash 脚本,它应该运行另一个名为文件选择器的程序。
#!/bin/bash
...
./file-selector -exclude="a/b/c/d/e/f1,a/b/c/d/e/f2,a/b/c/d/e/f3,a/b/c/d/e/f4,a/b/c/d/e/f5,a/b/c/d/e/f6"
...
我想将文件选择器行更改为如下所示:
./file-selector -exclude="a/b/c/d/e/f1,\
a/b/c/d/e/f2,\
a/b/c/d/e/f3,\
a/b/c/d/e/f4,\
a/b/c/d/e/f5,\
a/b/c/d/e/f6"
该-exclude
选项需要一个以逗号分隔的路径列表。
但是文件选择器程序正在退出并出现错误,可能是因为它遇到了所有空格和换行符。
有没有更好的方法来编写这个表达式以相当于 1-liner ?
尝试了解du
命令的基础知识对我来说并不那么简单。例如,有一个-h
选项被定义为以“人类可读格式”打印。问题是此选项更改了显示值:
~$ du --apparent-size -sh Documents/
376M Documents/
~$ du --apparent-size -s Documents/
384767 Documents/
通常 384767 应四舍五入为 385M。那么 376M 和 385M 哪个是正确的值呢?
更糟 :
~$ du -bsh Documents/
376M Documents/
~$ du -bs Documents/
394001294 Documents/