もこたんブログ@mocuLab(´・ω・`)

フルタイム主婦プログラマーのブログ( ´ω`)

MacとWindowsでファイルのやりとりをする際にできる隠しファイル(.DS_Store)を作成しないように設定する

macOS Mojave バージョン10.14.6

.DS_Storeって何?

ネットワークドライブでやりとりするとき、Macが自動で作成する隠しファイル「.DS_Store」がWindowsから見えて邪魔…。
このファイルはWindowsでは不要です。
.DS_StoreはmacOSのFinderでフォルダを開くと自動で作成されます。Macでは見えないのですがWindowsからは見えてしまうのです。

リモートファイルサーバにおいて.DS_Storeファイルが作成されないようにユーザー設定を変更して作成しないようにすることができます。

隠しファイルの表示/非表示

Macでは.DS_Storeは隠しファイル(不可視ファイル)になっているので通常は見えません。 Finderでショートカットキー「command + shift + .(ピリオド)」を押すごとに、隠しファイルを表示する/しないを切り替えられます。

.DS_Storeを作成しないように設定する手順

ターミナルでコマンドを実行

アプリケーション>ユーティリティ>ターミナル.app
からターミナルを開きます。 f:id:mocotanus:20191018145136p:plain

ターミナルで以下のコマンドを入力してエンターキーを押します。

defaults write com.apple.desktopservices DSDontWriteNetworkStores True
Finderの再起動

上記コマンド実行後、Finderの再起動をします。

Dockで、optionキーを押しながらFinderアイコンを右クリックします。
Finderのメニューが変わり、「再度開く」が表示されるのでこれをクリックします。
f:id:mocotanus:20191018164157j:plain これでFinderが再起動します。

またはターミナルで以下のコマンドを入力してエンターキーを押下して実行。

killall Finder

これでFinderが再起動します。

確認

Finderを再起動後に作成されなくなります。既に作成された.DS_Storeファイルは残りますので不要なら削除する必要があります。

外部ディスクを使ってみて、「.DS_Store」が作成されないことを確認してください。

設定を元に戻すには

設定を元に戻すにはtrueの部分をfalseにして
ターミナルでコマンドを実行します。

defaults write com.apple.desktopservices DSDontWriteNetworkStores false

.DS_Storeについて

Desktop Services Storeの略。
中身はFinderが使用するアイコンや表示設定などのメタデータ

隠しファイルについて

UNIX系OSでは「.(ピリオド)」で始まるファイルやディレクトリは「ドットファイル」「隠しファイル」と呼ばれ、通常は非表示になっています。

defaultsコマンドについて

defaultsコマンド:
ユーザーデフォルト(初期設定)を操作する

macOSは「ユーザーデフォルト」というデータベースに初期設定を保存しています。
defaultsコマンドで設定内容を変更できます。
サブコマンドwriteでは値を変更できます。

ユーザーデフォルト設定はOSやアプリケーションのバージョンに依存しやすいため最新情報を確認してから使用したほうがよさそう。

拡張属性について

.DS_Storeファイル以外に、「._ファイル名」という隠しファイルが作成されますがこれもWindowsでは不要なため削除してOKです。拡張属性と呼ばれ、中身はメタデータです。

拡張属性:
macOSではファイルの中身とは別に「拡張属性(EA:Extended Attributes)」が保存されます。これはメタデータの情報そのものです。

メタデータ
ファイルに関する情報のこと。
例えばサイズ、修正日、写真なら撮影場所、Finderのコメントやタグ情報などが含まれます。

参考

.DS_Storeの仕組みと削除&作成しないよう設定する方法 | UX MILK

.DS_Store が生成されないよう… - Apple コミュニティ

Mac OS X v10.4 and later:ネットワーク接続時に .DS_Store ファイルの作成を抑制する方法 - Apple サポート
ローカルボリュームでは作成しないようにはできないようです。
上記ページの手順3で「コンピュータを再起動するか、ユーザアカウントから一度ログアウトしてからログインし直します」とありますが、Finderの再起動でできました。
ユーザー設定なので、同じMacで別のユーザーアカウントでも同様にするなら再度そのユーザーでコマンドを実行する必要がありそうです。

これから学ぶmacOSターミナル

これから学ぶmacOSターミナル

↑わかりやすいです!