Mac OS X의 터미널에서 명령 결합


18

터미널에서 한 줄에 다음을 쓰거나 파일을 만들고 권한을 설정하는 더 짧은 방법이 있으면 의견을 말하십시오.

sudo touch .htaccess
sudo chmod 766 .htaccess

매우 감사

답변:


31

첫 번째가 성공하면 '&&'를 사용하여 두 번째 명령을 조건부로 실행하십시오.

sudo touch .htaccess 및 & sudo chmod 766 .htaccess


2
나는 두 가지 이유로이 솔루션을 선호 : 1. &&일반적으로 더 나은보다 ;첫 번째 명령이 실패하면 그것으로 필요한 경우에만 실행되는 특정 프로그램에 일반적으로 더 나은, 2. 정지하도록 sudo오히려 단일로 결합하는 것보다, sudo호출 및 실행 필요한 것보다 높은 권한을 가진 더 많은 코드.
Chris 페이지

scp admin@host.com:file1 && scp admin@host.com:file2 && scp admin@host.com:file3SSH 키에 비밀번호를 설정 한 경우 비밀번호를 묻는 메시지가 표시되는 경우 어떻게해야합니까 ?
Akshay Khale

2

전혀 그렇지 않다.

당신이 할 수있는 유일한 것은,이 두 명령을 하나로 묶을 수 있습니다 sudo:

sudo sh -c 'touch .htaccess && chmod 766 .htaccess'

또 다른 솔루션 (하나의 외부 호출이 없지만 두 개의 명령이 있음) :

sudo sh -c 'umask 011 && touch .htaccess'

1
좋은 제안이지만, &&대신 대신 사용하도록 수정하겠습니다 ;. 또한 일반적으로 두 가지 sudo명령을 사용 합니다. 단지 전체 프로그램을 실행하는 데 필요한 정확한 프로그램 (이 경우 touch 및 chmod)이 아니라 높은 권한으로 전체 셸을 실행하는 것이 너무 위험하고 위험하기 때문입니다.
Chris 페이지

네, 그렇습니다. 더 낫습니다
Igor Chubin

1

세미콜론을 사용하면 다음과 같이 한 줄에 여러 명령을 맞출 수 있습니다.

sudo touch .htaccess; sudo chmod 766 .htaccess


1
상호 의존적 인 명령을 실행할 때 &&대신 사용하는 습관을들이는 것이 좋습니다 ;.
Chris 페이지

0

세미콜론으로 명령을 분리하십시오. (;)

echo firstname; echo lastname;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.