質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

Q&A

解決済

4回答

1235閲覧

複数のディレクトリ操作

ruby_11

総合スコア37

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

0グッド

0クリップ

投稿2017/07/24 00:15

ターミナルでのディレクトリ操作について質問です。

今やりたいことは、複数のディレクトリに対して、同じ名前のディレクトリを作ることです。

例えば、Tokyo, Kyoto, Osakaというディレクトがあるときに、それぞれのディレクトリ内に、populationというディレクトリを作るにはどうしたらいいでしょうか?

コマンドで使う記号について調べたところ、?は任意の1文字、*は0文字以上の文字列ということがわかりました。

確かに、ls *と入力すると、Tokyo, Kyoto, Osakaと表示されますが、mkdir */populationと入力すると、No such file or directoryと表示されます。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

*は怖いので、明示的に指定すると以下になります。

mkdir -p {Tokyo,Kyoto,Osaka}/population

投稿2017/07/24 01:48

moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

mkdir */populationだと、*/populationにマッチするファイルかディレクトリを探しますが、そういうものはまだ無いので、ワイルドカードは展開されず、mkdir */populationのまま、つまり、*という名前のディレクトリの中にpopulationディレクトリを作ろうとしますが、*という名前のディレクトリがないので失敗します。

Bash

1for d in * 2do mkdir $d/population 3done

オマケ:
mkdir -p */populationだと、*という名前のディレクトリが出来てしまいます。これは意図しない事なので、要注意。わけもわからず-pを付けるのは駄目です。

投稿2017/07/24 07:45

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

macターミナル環境が無いで検証しておりませんがxargsは使えるようなので(ご参考まで)

sh

1find . -maxdepth 1 -type d | xargs -I{} mkdir -p {}/population

投稿2017/07/24 01:10

編集2017/07/24 14:10
A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ターミナルの作業が捗るかもな小技5つ

こんな記事を見つけました。
こちらの記事の1.が参考になるかもしれません。

#追記
Rubyならこんな感じで。
フォルダ名を全て取得して、その中に
populationフォルダを作ります。
失敗すると元に戻すのが大変なので
動かすときは注意が必要です。

Ruby

1# encoding: utf-8 2 3require 'fileutils' 4 5Dir.glob('*/').each { |e| FileUtils.mkdir_p(e + 'population') } 6

投稿2017/07/24 00:57

編集2017/07/24 03:21
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruby_11

2017/07/24 02:36

2,3個のディレクトリ操作だと、確かにディレクトリ名を入力して、解決されるのですが膨大な量の数がありますので、Rubyプログラムによって解決できるか試してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問