Ubuntu/Windows11 이중 부팅 시스템의 파일 이름에 파이프 문자("|")가 포함된 파일을 생성합니다.

Ubuntu/Windows11 이중 부팅 시스템의 파일 이름에 파이프 문자("|")가 포함된 파일을 생성합니다.

저는 Ubuntu 22.04를 실행 중이고 파일 이름에 파이프 문자("|")가 포함된 파일을 생성하고 싶습니다. (실행하려면 일부 레거시 코드가 필요합니다.) 특히 Linux/Windows11 이중 부팅 시스템의 특정 드라이브에서 이 작업을 수행하지 못하게 하는 문제점을 식별하고 수정하려면 어떻게 해야 합니까?

내 컴퓨터의 특정 디렉터리에는 이러한 파일을 성공적으로 생성할 수 있지만 Windows가 읽을 수 있는 디스크 드라이브에서는 생성할 수 없기 때문에 이중 부팅이 문제라고 생각합니다(아래 참조). 다른 사람이 처음에 OS를 설치했기 때문에 그들이 어떤 선택을 하여 이 문제에 영향을 미쳤는지 알 수 없습니다.

내가 시도한 것은 다음과 같습니다. 다음 시도는 성공하므로 Linux에는 근본적인 반대가 없음을 알 수 있습니다.

xname@blackbox:~$ cd ~
xname@blackbox:~$ touch "|"
xname@blackbox:~$ ls -l "|"
-rw-rw-r-- 1 xname xname 0 Feb  9 10:17 '|'

/media마찬가지로, 디렉토리 나 디렉토리 내에 있으면 /media/xname파일을 성공적으로 터치할 수 있습니다 .

xname@blackbox:/media/xname$ cd /media
xname@blackbox:/media$ sudo touch "|"
xname@blackbox:/media$ cd /media/xname
xname@blackbox:/media/xname$ sudo touch "|"
xname@blackbox:/media/xname$ ls -l
total 12
-rw-rw-r-- 1 xname xname    0 Feb  9 11:35 '|'
drwxrwxrwx 1 xname xname 8192 Feb  8 17:25  cdisk
drwxrwxrwx 1 xname xname 4096 Feb  9 11:30  ddisk

위에서 권한을 볼 수 있습니다 ddisk. 처음 머신을 구입했을 때 상위 디렉토리에 ACL이 있었지만 이를 사용하여 삭제한 setfacl -b ddisk다음 재부팅했습니다.

ddisk( 및 cdisk) 내에서 터치 시도가 실패합니다.

xname@blackbox:/media/xname$ cd /media/xname/ddisk
xname@blackbox:/media/xname/ddisk$ touch "this_works_fine"
xname@blackbox:/media/xname/ddisk$ touch "|"
touch: setting times of '|': No such file or directory
xname@blackbox:/media/xname/ddisk$ sudo touch "|"
touch: setting times of '|': No such file or directory

아마도 명령 출력의 일부가 findmnt도움이 될 것입니다.

TARGET                                   SOURCE           FSTYPE  OPTIONS
/                                        /dev/nvme0n1p5   ext4    rw,relatime,er
├─/media/xname/ddisk                     /dev/nvme1n1p2   fuseblk rw,nosuid,node
└─/media/xname/cdisk                     /dev/nvme0n1p3   fuseblk rw,nosuid,node

이것이 출력이다mount | grep media

/dev/nvme0n1p3 on /media/xname/cdisk type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
/dev/nvme1n1p2 on /media/xname/ddisk type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)

이 기계에 관련된 또 다른 수수께끼는 로그인할 때 가 아닌 숫자를 입력하라는 메시지가 표시된다는 xname것입니다 xname.

당신의 도움을 주셔서 감사합니다.

답변1

이건 중요하지 않아어느사용 중인 DOS/Windows 특정 파일 시스템모두다음 문자(각이 MS 페이지) ....

유니코드 문자와 확장 문자 집합(128-255)의 문자를 포함하여 현재 코드 페이지의 모든 문자를 이름으로 사용합니다.다음 상황을 제외하고:

다음 예약 문자:

  • < 미만
  • > (보다 큼)
  • :(콜론)
  • "(큰따옴표)
  • /(슬래시)
  • \(백슬래시)
  • (수직 튜브 또는 막대)
  • ? (물음표)
  • *(별표)

파일 시스템에 관계없이 이 항목을 끌어낼 수 있는 추상화 계층이 있는지 의심스럽습니다. 하지만 저는 분명 MS 직원이 아니므로 확신할 수 없습니다. 나는 모든 Windows 파일 시스템이 이 제한 사항을 구현한다고 생각하며 이러한 파일 시스템의 Linux 구현도 이러한 제한 사항을 따르는 것이 논리적인 것 같습니다. *hey|thereLinux에서 파일을 만든 다음 Windows를 부팅하고 실행하려고 하면 fsck매우 실망스러울 것이라고 생각합니다 . ;)

관련 정보