이름을 바꿀 때 파일 경로의 이름이 바뀌기 때문에 동일한 프로세스가 파일을 다른 폴더로 이동합니다.
이 작업의 동기는 다음과 같습니다. Hugo에서는 블로그 게시물을 다음과 같이 파일로 작성할 수 있습니다.
first-post.md
second-post.md
third-post.md
index.md 파일이 포함 된 폴더에 추가 할 수도 있습니다.
first-post/
> index.md
second-post/
> index.md
third-post/
> index.md
차이점은 폴더를 사용하여 이미지를 추가하고 블로그 게시물에 더 쉽게 연결할 수 있다는 것입니다.
수동으로 변경 작업을 수행 할 수는 있었지만 폴더에 약 50 개의 파일이 있었고 실제로 그 일을 하고 싶지 않았습니다.
나는 그것이 자동으로 일어나기를 원했습니다.
우리가 사용할 핵심 모듈 하나가 필요합니다 : fs. 핵심 모듈이기 때문에 npm을 설치할 필요가 없습니다.
const fs = require('fs')
그런 다음 현재 폴더에 대한 참조를 얻습니다. 이 변경을 수행하려는 동일한 폴더에서 스크립트를 실행한다고 가정합니다.
__dirname은 항상 현재 작업 폴더를 가리키는 변수입니다.
모든 파일과 폴더의 목록을 얻습니다.
const files = fs.readdirSync(__dirname)
그런 다음 .md로 끝나는 항목 만 필터링 합니다.
for (const file of files) {
if (file.endsWith('.md')) {
console.log(file)
}
}
파일 이름을 나타내는 파일 참조가 있으면 fs.rename()을 호출 할 수 있습니다.
이 함수는 3 개의 매개 변수를 허용합니다.
현재 경로는 다음과 같습니다
__dirname + '/' + item
이동하려는 경로는 다음과 같습니다.
__dirname + '/' + item.replace('.md', '') + '/index.md'
보다? 파일 이름으로 새 폴더를 만든 다음 index.md를 추가합니다.
fs.rename(
__dirname + '/' + item,
__dirname + '/' + item.replace('.md', '') + '/index.md',
err => {
console.log(err)
}
)
전체 코드는 다음과 같습니다.
const fs = require('fs')
const files = fs.readdirSync(__dirname)
for (const file of files) {
if (file.endsWith('.md')) {
fs.rename(
__dirname + '/' + item,
__dirname + '/' + item.replace('.md', '') + '/index.md',
err => {
console.log(err)
}
)
}
}
등록된 댓글이 없습니다.